Btrfs: use right type to get real comparison
authorLiu Bo <bo.li.liu@oracle.com>
Sun, 8 Jun 2014 11:04:13 +0000 (19:04 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Jul 2014 03:09:46 +0000 (20:09 -0700)
commit cd857dd6bc2ae9ecea14e75a34e8a8fdc158e307 upstream.

We want to make sure the point is still within the extent item, not to verify
the memory it's pointing to.

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/backref.c

index 290e347b6db3f925f414fd9be4e6ea394da6f887..75386cb004afa391f9178836ceb99d0b802dce00 100644 (file)
@@ -1366,7 +1366,7 @@ static int __get_extent_inline_ref(unsigned long *ptr, struct extent_buffer *eb,
                        *out_eiref = (struct btrfs_extent_inline_ref *)(ei + 1);
                }
                *ptr = (unsigned long)*out_eiref;
-               if ((void *)*ptr >= (void *)ei + item_size)
+               if ((unsigned long)(*ptr) >= (unsigned long)ei + item_size)
                        return -ENOENT;
        }