diff options
author | Josef Bacik <josef@redhat.com> | 2011-03-16 16:47:17 -0400 |
---|---|---|
committer | Josef Bacik <josef@redhat.com> | 2011-03-17 14:21:41 -0400 |
commit | 22a94d44bd6876a90630338229da6c0436d46593 (patch) | |
tree | 50e5c7dd52ccf9292240de995e5b42b1619bcd82 /fs/btrfs/inode.c | |
parent | 41415730a1050499fbd63b3f7dd59b3a4c3bb91a (diff) |
Btrfs: add checks to verify dir items are correct
We need to make sure the dir items we get are valid dir items. So any time we
try and read one check it with verify_dir_item, which will do various sanity
checks to make sure it looks sane. Thanks,
Signed-off-by: Josef Bacik <josef@redhat.com>
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 888dbdb3b128..e010000d4bc9 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -4272,6 +4272,9 @@ static int btrfs_real_readdir(struct file *filp, void *dirent, | |||
4272 | while (di_cur < di_total) { | 4272 | while (di_cur < di_total) { |
4273 | struct btrfs_key location; | 4273 | struct btrfs_key location; |
4274 | 4274 | ||
4275 | if (verify_dir_item(root, leaf, di)) | ||
4276 | break; | ||
4277 | |||
4275 | name_len = btrfs_dir_name_len(leaf, di); | 4278 | name_len = btrfs_dir_name_len(leaf, di); |
4276 | if (name_len <= sizeof(tmp_name)) { | 4279 | if (name_len <= sizeof(tmp_name)) { |
4277 | name_ptr = tmp_name; | 4280 | name_ptr = tmp_name; |