btrfs-progs: extent_io: Fix NULL pointer dereference in free_extent_buffer_final()
authorQu Wenruo <wqu@suse.com>
Fri, 30 Mar 2018 05:48:53 +0000 (13:48 +0800)
committerDavid Sterba <dsterba@suse.com>
Tue, 24 Apr 2018 11:00:11 +0000 (13:00 +0200)
commit98d5d325a887b6c061096c141eef10755762bbcf
treea1be1f4d960ba243c15a64f8595cfd70918a9db6
parenta5ef445f05fb077736d47624e31b9f6c7bbb0f1b
btrfs-progs: extent_io: Fix NULL pointer dereference in free_extent_buffer_final()

In free_extent_buffer_final() we access eb->tree->cache_size in
BUG_ON().  However eb->tree can be NULL if it's a cloned extent buffer.

Currently the cloned extent buffer is only used in backref.c,
paths_from_inode() function.  Thankfully that function is not used yet
(but could be pretty useful to convert inode number to path, so I'd like
to keep such function).

Anyway, check eb->tree before accessing its member.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
extent_io.c