In insert_inline_extent(), the case that compressed_size > 0 and compressed_pages = NULL cannot occur, otherwise a null-pointer dereference may occur on line 215: cpage = compressed_pages[i];
To warn this incorrect case, an assertion is added. Thank Qu Wenruo and David Sterba for good advice. Signed-off-by: Jia-Ju Bai <baijiaju1...@gmail.com> --- fs/btrfs/inode.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 1af069a9a0c7..21d6e2dcc25f 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -178,6 +178,9 @@ static int insert_inline_extent(struct btrfs_trans_handle *trans, size_t cur_size = size; unsigned long offset; + ASSERT((compressed_size > 0 && compressed_pages) || + (compressed_size == 0 && !compressed_pages)) + if (compressed_size && compressed_pages) cur_size = compressed_size; -- 2.17.0