fs: btrfs: inode: handle uninitialized type before returning it
authorQu Wenruo <wqu@suse.com>
Sat, 31 Oct 2020 01:07:49 +0000 (09:07 +0800)
committerTom Rini <trini@konsulko.com>
Thu, 19 Nov 2020 14:45:49 +0000 (09:45 -0500)
commit9b5546c37ab020039f06855eae28fbd56adb096b
tree87e581f0e6e832f8b308ccfdd8893237409a5586
parentc49b0eb034710f08fc68cbfa2c23811e10667ad9
fs: btrfs: inode: handle uninitialized type before returning it

In btrfs_lookup_path() the local variable @type should always be updated
after we hit any file/dir.

But if @filename is NULL from the very beginning, then we don't
initialize it and return it directly.

To prevent such problem from happening, we initialize @type to
BTRFS_FT_UNKNOWN.
For normal execution route, it will get updated for each filename we
resolved.
Buf if we didn't find any path, we check if the type is still FT_UNKNOWN
and ret == 0. If true we know there is something wrong, just return
-EUCLEAN to inform the caller.

Reported-by: Coverity CID 312958
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Marek BehĂșn <marek.behun@nic.cz>
fs/btrfs/inode.c