On 12/22/16 7:53 AM, Dan Carpenter wrote:
> Hello Jeff Mahoney,
> 
> This is a semi-automatic email about new static checker warnings.

Hi Dan -

Thanks for the report.  We've already seen this one and the right fix is
to remove the checks in btrfs_get_name since exportfs won't pass
negative dentries.  The original reporter has submitted a patch for that.

-Jeff

> The patch 0b246afa62b0: "btrfs: root->fs_info cleanup, add fs_info 
> convenience variables" from Jun 22, 2016, leads to the following 
> Smatch complaint:
> 
> fs/btrfs/export.c:238 btrfs_get_name()
>        warn: variable dereferenced before check 'inode' (see line 226)
> 
> fs/btrfs/export.c
>    225                struct inode *dir = d_inode(parent);
>    226                struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
>                                                          ^^^^^^^^^^^
> Patch adds dereference.
> 
>    227                struct btrfs_path *path;
>    228                struct btrfs_root *root = BTRFS_I(dir)->root;
>    229                struct btrfs_inode_ref *iref;
>    230                struct btrfs_root_ref *rref;
>    231                struct extent_buffer *leaf;
>    232                unsigned long name_ptr;
>    233                struct btrfs_key key;
>    234                int name_len;
>    235                int ret;
>    236                u64 ino;
>    237        
>    238                if (!dir || !inode)
>                              ^^^^^
> Old code checked for NULL.
> 
>    239                        return -EINVAL;
>    240        
> 
> regards,
> dan carpenter
> 


-- 
Jeff Mahoney
SUSE Labs

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to