hfsplus: Fix potential buffer overflows
[firefly-linux-kernel-4.4.55.git] / fs / hfsplus / catalog.c
index b4ba1b3193336ead42c6ffbfbbd365e058cf8f1e..408073ae7a272fa52063120402a227edc243217f 100644 (file)
@@ -360,6 +360,10 @@ int hfsplus_rename_cat(u32 cnid,
        err = hfs_brec_find(&src_fd);
        if (err)
                goto out;
+       if (src_fd.entrylength > sizeof(entry) || src_fd.entrylength < 0) {
+               err = -EIO;
+               goto out;
+       }
 
        hfs_bnode_read(src_fd.bnode, &entry, src_fd.entryoffset,
                                src_fd.entrylength);