lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202108050030.cxg6NKHX-lkp@intel.com>
Date:   Thu, 5 Aug 2021 00:16:34 +0800
From:   kernel test robot <lkp@...el.com>
To:     Miklos Szeredi <mszeredi@...hat.com>
Cc:     clang-built-linux@...glegroups.com, kbuild-all@...ts.01.org,
        fuse-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org
Subject: [fuse:for-next 4/5] fs/fuse/inode.c:1524:6: warning: variable 'err'
 is used uninitialized whenever 'if' condition is true

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next
head:   a55db824dd51d52f68811f8f82bcf0bbada69abf
commit: ff12b23145693516720dda015da7e51fcf236e4d [4/5] fuse: move fget() to fuse_get_tree()
config: x86_64-randconfig-a002-20210804 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 4f71f59bf3d9914188a11d0c41bedbb339d36ff5)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/commit/?id=ff12b23145693516720dda015da7e51fcf236e4d
        git remote add fuse https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git
        git fetch --no-tags fuse for-next
        git checkout ff12b23145693516720dda015da7e51fcf236e4d
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

>> fs/fuse/inode.c:1524:6: warning: variable 'err' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
           if ((ctx->file->f_op != &fuse_dev_operations) ||
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/fuse/inode.c:1558:9: note: uninitialized use occurs here
           return err;
                  ^~~
   fs/fuse/inode.c:1524:2: note: remove the 'if' if its condition is always false
           if ((ctx->file->f_op != &fuse_dev_operations) ||
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/fuse/inode.c:1524:6: warning: variable 'err' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
           if ((ctx->file->f_op != &fuse_dev_operations) ||
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/fuse/inode.c:1558:9: note: uninitialized use occurs here
           return err;
                  ^~~
   fs/fuse/inode.c:1524:6: note: remove the '||' if its condition is always false
           if ((ctx->file->f_op != &fuse_dev_operations) ||
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/fuse/inode.c:1512:9: note: initialize the variable 'err' to silence this warning
           int err;
                  ^
                   = 0
   2 warnings generated.


vim +1524 fs/fuse/inode.c

  1508	
  1509	static int fuse_fill_super(struct super_block *sb, struct fs_context *fsc)
  1510	{
  1511		struct fuse_fs_context *ctx = fsc->fs_private;
  1512		int err;
  1513		struct fuse_conn *fc;
  1514		struct fuse_mount *fm;
  1515	
  1516		if (!ctx->file || !ctx->rootmode_present ||
  1517		    !ctx->user_id_present || !ctx->group_id_present)
  1518			return -EINVAL;
  1519	
  1520		/*
  1521		 * Require mount to happen from the same user namespace which
  1522		 * opened /dev/fuse to prevent potential attacks.
  1523		 */
> 1524		if ((ctx->file->f_op != &fuse_dev_operations) ||
  1525		    (ctx->file->f_cred->user_ns != sb->s_user_ns))
  1526			goto err;
  1527		ctx->fudptr = &ctx->file->private_data;
  1528	
  1529		fc = kmalloc(sizeof(*fc), GFP_KERNEL);
  1530		err = -ENOMEM;
  1531		if (!fc)
  1532			goto err;
  1533	
  1534		fm = kzalloc(sizeof(*fm), GFP_KERNEL);
  1535		if (!fm) {
  1536			kfree(fc);
  1537			goto err;
  1538		}
  1539	
  1540		fuse_conn_init(fc, fm, sb->s_user_ns, &fuse_dev_fiq_ops, NULL);
  1541		fc->release = fuse_free_conn;
  1542	
  1543		sb->s_fs_info = fm;
  1544	
  1545		err = fuse_fill_super_common(sb, ctx);
  1546		if (err)
  1547			goto err_put_conn;
  1548		/* file->private_data shall be visible on all CPUs after this */
  1549		smp_mb();
  1550		fuse_send_init(get_fuse_mount_super(sb));
  1551		return 0;
  1552	
  1553	 err_put_conn:
  1554		fuse_conn_put(fc);
  1555		kfree(fm);
  1556		sb->s_fs_info = NULL;
  1557	 err:
  1558		return err;
  1559	}
  1560	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (27866 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ