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
