Whamcloud - gitweb
git://git.whamcloud.com
/
tools
/
e2fsprogs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
37d17a6
)
e2fsck: Add superblock check to make sure s_first_ino is valid
author
Theodore Ts'o
<tytso@mit.edu>
Thu, 22 Jan 2009 20:52:50 +0000
(15:52 -0500)
committer
Theodore Ts'o
<tytso@mit.edu>
Thu, 22 Jan 2009 20:52:50 +0000
(15:52 -0500)
An deliberately corrupted filesystem with an insanely large
s_first_ino field could cause e2fsck to crash with a seg fault.
Thanks to Eric Sesterhenn for supplying test cases which demonstrated
this issue.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
e2fsck/super.c
patch
|
blob
|
history
diff --git
a/e2fsck/super.c
b/e2fsck/super.c
index
cd2b9f0
..
24ec7a8
100644
(file)
--- a/
e2fsck/super.c
+++ b/
e2fsck/super.c
@@
-513,6
+513,10
@@
void check_super_block(e2fsck_t ctx)
check_super_value(ctx, "reserved_gdt_blocks",
sb->s_reserved_gdt_blocks, MAX_CHECK, 0,
fs->blocksize/4);
+ if (sb->s_rev_level > EXT2_GOOD_OLD_REV)
+ check_super_value(ctx, "first_ino", sb->s_first_ino,
+ MIN_CHECK | MAX_CHECK,
+ EXT2_GOOD_OLD_FIRST_INO, sb->s_inodes_count);
inode_size = EXT2_INODE_SIZE(sb);
check_super_value(ctx, "inode_size",
inode_size, MIN_CHECK | MAX_CHECK,