Squashfs: fix corruption check in get_dir_index_using_name()
authorPhillip Lougher <phillip@squashfs.org.uk>
Tue, 3 Sep 2013 03:02:53 +0000 (04:02 +0100)
committerPhillip Lougher <phillip@squashfs.org.uk>
Fri, 6 Sep 2013 03:57:52 +0000 (04:57 +0100)
Patch "Squashfs: sanity check information from disk" from
Dan Carpenter adds a missing check for corruption in the
"size" field while reading the directory index from disk.

It, however, sets err to -EINVAL, this value is not used later, and
so setting it is completely redundant.  So remove it.

Errors in reading the index are deliberately non-fatal.  If we
get an error in reading the index we just return the part of the
index we have managed to read - the index isn't essential,
just quicker.

Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
fs/squashfs/namei.c

index f866d42a8b6f3f0d212ab5df95b2a3c2babb0437..342a5aa5a0e474cf5cdbdd1ff16047fb558701c1 100644 (file)
@@ -104,10 +104,8 @@ static int get_dir_index_using_name(struct super_block *sb,
 
 
                size = le32_to_cpu(index->size) + 1;
-               if (size > SQUASHFS_NAME_LEN) {
-                       err = -EINVAL;
+               if (size > SQUASHFS_NAME_LEN)
                        break;
-               }
 
                err = squashfs_read_metadata(sb, index->name, &index_start,
                                        &index_offset, size);