linux/fs/btrfs
Naohiro Aota bb166d7207 btrfs: fix NULL pointer dereference from free_reloc_roots()
__del_reloc_root should be called before freeing up reloc_root->node.
If not, calling __del_reloc_root() dereference reloc_root->node, causing
the system BUG.

Fixes: 6bdf131fac ("Btrfs: don't leak reloc root nodes on error")
Cc: <stable@vger.kernel.org> # 4.9
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2017-09-26 14:51:49 +02:00
..
tests btrfs: remove unused sectorsize member 2017-08-16 14:19:53 +02:00
acl.c btrfs: preserve i_mode if __btrfs_set_acl() fails 2017-08-21 17:47:42 +02:00
async-thread.c btrfs: constify tracepoint arguments 2017-08-16 14:19:53 +02:00
async-thread.h btrfs: constify tracepoint arguments 2017-08-16 14:19:53 +02:00
backref.c Btrfs: convert to use btrfs_get_extent_inline_ref_type 2017-08-21 17:47:43 +02:00
backref.h btrfs: backref, add tracepoints for prelim_ref insertion and merging 2017-08-16 16:12:01 +02:00
btrfs_inode.h btrfs: separate defrag and property compression 2017-08-16 16:12:05 +02:00
check-integrity.c btrfs: use appropriate define for the fsid 2017-08-18 16:36:29 +02:00
check-integrity.h
compression.c Btrfs: add skeleton code for compression heuristic 2017-08-16 16:12:04 +02:00
compression.h btrfs: remove unused BTRFS_COMPRESS_LAST 2017-08-18 16:36:29 +02:00
ctree.c btrfs: get fs_info from eb in btrfs_print_leaf, remove argument 2017-08-16 16:12:03 +02:00
ctree.h btrfs: pass fs_info to btrfs_del_root instead of tree_root 2017-08-21 17:49:54 +02:00
dedupe.h
delayed-inode.c btrfs: increase ctx->pos for delayed dir index 2017-08-18 16:36:20 +02:00
delayed-inode.h
delayed-ref.c Btrfs: return old and new total ref mods when adding delayed refs 2017-06-29 20:17:01 +02:00
delayed-ref.h Btrfs: return old and new total ref mods when adding delayed refs 2017-06-29 20:17:01 +02:00
dev-replace.c btrfs: simplify btrfs_dev_replace_kthread 2017-08-16 16:12:03 +02:00
dev-replace.h
dir-item.c btrfs: fix validation of XATTR_ITEM dir items 2017-06-29 20:06:11 +02:00
disk-io.c btrfs: submit superblock io with REQ_META and REQ_PRIO 2017-08-22 13:22:05 +02:00
disk-io.h btrfs: use named constant for bdev blocksize 2017-08-16 16:12:04 +02:00
export.c btrfs: Check name_len before reading btrfs_get_name 2017-06-21 19:16:04 +02:00
export.h
extent_io.c Btrfs: do not reset bio->bi_ops while writing bio 2017-09-26 14:48:30 +02:00
extent_io.h btrfs: struct-funcs, constify readers 2017-08-16 14:19:53 +02:00
extent_map.c
extent_map.h
extent-tree.c btrfs: pass fs_info to btrfs_del_root instead of tree_root 2017-08-21 17:49:54 +02:00
file-item.c Merge branch 'for-4.13-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux 2017-07-05 16:41:23 -07:00
file.c btrfs: fix readdir deadlock with pagefault 2017-08-16 16:12:05 +02:00
free-space-cache.c btrfs: drop newlines from strings when using btrfs_* helpers 2017-08-16 16:12:02 +02:00
free-space-cache.h
free-space-tree.c btrfs: pass fs_info to btrfs_del_root instead of tree_root 2017-08-21 17:49:54 +02:00
free-space-tree.h btrfs: expose internal free space tree routine only if sanity tests are enabled 2017-08-18 16:36:29 +02:00
hash.c
hash.h
inode-item.c
inode-map.c btrfs: qgroup: Introduce extent changeset for qgroup reserve functions 2017-06-29 20:17:02 +02:00
inode-map.h
inode.c btrfs: finish ordered extent cleaning if no progress is found 2017-09-26 14:49:06 +02:00
ioctl.c Btrfs: fix incorrect {node,sector}size endianness from BTRFS_IOC_FS_INFO 2017-09-26 14:48:50 +02:00
Kconfig
locking.c
locking.h
lzo.c
Makefile
math.h
ordered-data.c btrfs: fix integer overflow in calc_reclaim_items_nr 2017-06-29 20:17:02 +02:00
ordered-data.h btrfs: fix integer overflow in calc_reclaim_items_nr 2017-06-29 20:17:02 +02:00
orphan.c
print-tree.c Btrfs: add one more sanity check for shared ref type 2017-08-21 17:47:43 +02:00
print-tree.h btrfs: get fs_info from eb in btrfs_print_tree, remove argument 2017-08-16 16:12:03 +02:00
props.c btrfs: prepare for extensions in compression options 2017-08-16 16:12:05 +02:00
props.h
qgroup.c btrfs: pass fs_info to btrfs_del_root instead of tree_root 2017-08-21 17:49:54 +02:00
qgroup.h btrfs: qgroup: Fix qgroup reserved space underflow by only freeing reserved ranges 2017-06-29 20:17:02 +02:00
raid56.c Merge branch 'for-4.13-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux 2017-07-14 22:55:52 -07:00
raid56.h
rcu-string.h
reada.c
relocation.c btrfs: fix NULL pointer dereference from free_reloc_roots() 2017-09-26 14:51:49 +02:00
root-tree.c btrfs: pass fs_info to btrfs_del_root instead of tree_root 2017-08-21 17:49:54 +02:00
scrub.c btrfs: scrub: simplify scrub worker initialization 2017-08-21 17:47:42 +02:00
send.c Btrfs: incremental send, fix emission of invalid clone operations 2017-08-21 17:47:42 +02:00
send.h
struct-funcs.c btrfs: struct-funcs, constify readers 2017-08-16 14:19:53 +02:00
super.c btrfs: Do not use data_alloc_cluster in ssd mode 2017-08-21 17:47:42 +02:00
sysfs.c
sysfs.h
transaction.c btrfs: fix integer overflow in calc_reclaim_items_nr 2017-06-29 20:17:02 +02:00
transaction.h
tree-defrag.c
tree-log.c btrfs: Remove extra parentheses from condition in copy_items() 2017-08-21 17:47:42 +02:00
tree-log.h
ulist.c
ulist.h
uuid-tree.c
volumes.c btrfs: remove superfluous chunk_tree argument from btrfs_alloc_dev_extent 2017-08-21 18:30:30 +02:00
volumes.h btrfs: Remove unused sectorsize variable from struct map_lookup 2017-08-18 16:36:29 +02:00
xattr.c btrfs: Check name_len with boundary in verify dir_item 2017-06-21 19:16:04 +02:00
xattr.h
zlib.c