summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhillip Lougher <phillip@squashfs.org.uk>2013-09-03 05:02:53 +0200
committerPhillip Lougher <phillip@squashfs.org.uk>2013-09-06 05:57:52 +0200
commit9dbc41d5d371cb10099c8182552f3915920e69b6 (patch)
treefa549b1308a13d40f8de494889dc9d315eea894b
parentSquashfs: Optimized uncompressed buffer loop (diff)
downloadlinux-9dbc41d5d371cb10099c8182552f3915920e69b6.tar.xz
linux-9dbc41d5d371cb10099c8182552f3915920e69b6.zip
Squashfs: fix corruption check in get_dir_index_using_name()
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>
-rw-r--r--fs/squashfs/namei.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/squashfs/namei.c b/fs/squashfs/namei.c
index f866d42a8b6f..342a5aa5a0e4 100644
--- a/fs/squashfs/namei.c
+++ b/fs/squashfs/namei.c
@@ -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);