aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/inode.c
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2011-03-16 16:47:17 -0400
committerJosef Bacik <josef@redhat.com>2011-03-17 14:21:41 -0400
commit22a94d44bd6876a90630338229da6c0436d46593 (patch)
tree50e5c7dd52ccf9292240de995e5b42b1619bcd82 /fs/btrfs/inode.c
parent41415730a1050499fbd63b3f7dd59b3a4c3bb91a (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.c3
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;