btrfs-progs: Fix NULL pointer when receive clone operation
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Thu, 15 Dec 2016 08:37:02 +0000 (16:37 +0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 21 Dec 2016 15:29:06 +0000 (16:29 +0100)
commite0485281ed319d99bdae13acdd5c9aed014083d9
tree91bcd7a0b99c1f3bd0b1e3d9ac40f480272a450d
parente27189a39163e6d6d6781fdec55ae6ee11671839
btrfs-progs: Fix NULL pointer when receive clone operation

Regression introduced by a2f7af94abe4a3491ca1280a2ae1d63edc0d62ab
"btrfs-progs: subvol_uuid_search: return error encoded pointer"
IS_ERR() will only check if it's an error code, won't check if it's
NULL.  And for all the caller the commit modifies, it can return NULL
and makes cause segfault.

Fix it by introducing new IS_ERR_OR_NULL() macro, and for NULL pointer
and needs to return int case, convert NULL pointer to -ENOENT.

Reported-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Tested-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-receive.c
cmds-send.c
kerncompat.h