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: <202107261013.qMOOMz9S-lkp@intel.com>
Date:   Mon, 26 Jul 2021 10:34:16 +0800
From:   kernel test robot <lkp@...el.com>
To:     Allison Henderson <allison.henderson@...cle.com>
Cc:     clang-built-linux@...glegroups.com, kbuild-all@...ts.01.org,
        linux-kernel@...r.kernel.org
Subject: [allisonhenderson-xfs_work:delayed_attrs_v22_extended 9/32]
 fs/xfs/xfs_attr_item.c:638:5: warning: variable 'rsvd' is uninitialized when
 used here

tree:   https://github.com/allisonhenderson/xfs_work.git delayed_attrs_v22_extended
head:   43a95c4600b7c80ac410a00ac245ccf85b150d26
commit: a081aa472665a7b050bb4b34949559a187507c24 [9/32] xfs: Implement attr logging and replay
config: x86_64-randconfig-a003-20210725 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project c63dbd850182797bc4b76124d08e1c320ab2365d)
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
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/allisonhenderson/xfs_work/commit/a081aa472665a7b050bb4b34949559a187507c24
        git remote add allisonhenderson-xfs_work https://github.com/allisonhenderson/xfs_work.git
        git fetch --no-tags allisonhenderson-xfs_work delayed_attrs_v22_extended
        git checkout a081aa472665a7b050bb4b34949559a187507c24
        # 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/xfs/xfs_attr_item.c:638:5: warning: variable 'rsvd' is uninitialized when used here [-Wuninitialized]
                                   rsvd ? XFS_TRANS_RESERVE : 0, &tp);
                                   ^~~~
   fs/xfs/xfs_attr_item.c:586:14: note: initialize the variable 'rsvd' to silence this warning
           bool                            rsvd;
                                               ^
                                                = 0
   1 warning generated.


vim +/rsvd +638 fs/xfs/xfs_attr_item.c

   569	
   570	/*
   571	 * Process an attr intent item that was recovered from the log.  We need to
   572	 * delete the attr that it describes.
   573	 */
   574	STATIC int
   575	xfs_attri_item_recover(
   576		struct xfs_log_item		*lip,
   577		struct list_head		*capture_list)
   578	{
   579		struct xfs_attri_log_item	*attrip = ATTRI_ITEM(lip);
   580		struct xfs_attr_item		*attr;
   581		struct xfs_mount		*mp = lip->li_mountp;
   582		struct xfs_inode		*ip;
   583		struct xfs_da_args		*args;
   584		struct xfs_trans		*tp;
   585		struct xfs_trans_res		tres;
   586		bool				rsvd;
   587		struct xfs_attri_log_format	*attrp;
   588		int				error, ret = 0;
   589		int				total;
   590		int				local;
   591		struct xfs_attrd_log_item	*done_item = NULL;
   592	
   593		/*
   594		 * First check the validity of the attr described by the ATTRI.  If any
   595		 * are bad, then assume that all are bad and just toss the ATTRI.
   596		 */
   597		attrp = &attrip->attri_format;
   598		if (!xfs_attri_validate(mp, attrip))
   599			return -EFSCORRUPTED;
   600	
   601		error = xlog_recover_iget(mp,  attrp->alfi_ino, &ip);
   602		if (error)
   603			return error;
   604	
   605		attr = kmem_zalloc(sizeof(struct xfs_attr_item) +
   606				   sizeof(struct xfs_da_args), KM_NOFS);
   607		args = (struct xfs_da_args *)((char *)attr +
   608			   sizeof(struct xfs_attr_item));
   609	
   610		attr->xattri_dac.da_args = args;
   611		attr->xattri_op_flags = attrp->alfi_op_flags;
   612	
   613		args->dp = ip;
   614		args->geo = mp->m_attr_geo;
   615		args->op_flags = attrp->alfi_op_flags;
   616		args->whichfork = XFS_ATTR_FORK;
   617		args->name = attrip->attri_name;
   618		args->namelen = attrp->alfi_name_len;
   619		args->hashval = xfs_da_hashname(args->name, args->namelen);
   620		args->attr_filter = attrp->alfi_attr_flags;
   621	
   622		if (attrp->alfi_op_flags == XFS_ATTR_OP_FLAGS_SET) {
   623			args->value = attrip->attri_value;
   624			args->valuelen = attrp->alfi_value_len;
   625			args->total = xfs_attr_calc_size(args, &local);
   626	
   627			tres.tr_logres = M_RES(mp)->tr_attrsetm.tr_logres +
   628					 M_RES(mp)->tr_attrsetrt.tr_logres *
   629						args->total;
   630			tres.tr_logcount = XFS_ATTRSET_LOG_COUNT;
   631			tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
   632			total = args->total;
   633		} else {
   634			tres = M_RES(mp)->tr_attrrm;
   635			total = XFS_ATTRRM_SPACE_RES(mp);
   636		}
   637		error = xfs_trans_alloc(mp, &tres, total, 0,
 > 638					rsvd ? XFS_TRANS_RESERVE : 0, &tp);
   639		if (error)
   640			goto out;
   641	
   642		args->trans = tp;
   643		done_item = xfs_trans_get_attrd(tp, attrip);
   644	
   645		xfs_ilock(ip, XFS_ILOCK_EXCL);
   646		xfs_trans_ijoin(tp, ip, 0);
   647	
   648		ret = xfs_trans_attr_finish_update(&attr->xattri_dac, done_item,
   649						   &attr->xattri_dac.leaf_bp,
   650						   attrp->alfi_op_flags);
   651		if (ret == -EAGAIN) {
   652			/* There's more work to do, so add it to this transaction */
   653			xfs_defer_add(tp, XFS_DEFER_OPS_TYPE_ATTR, &attr->xattri_list);
   654		} else
   655			error = ret;
   656	
   657		if (error) {
   658			xfs_trans_cancel(tp);
   659			goto out_unlock;
   660		}
   661	
   662		error = xfs_defer_ops_capture_and_commit(tp, ip, capture_list);
   663	
   664	out_unlock:
   665		xfs_iunlock(ip, XFS_ILOCK_EXCL);
   666		xfs_irele(ip);
   667	out:
   668		if (ret != -EAGAIN)
   669			kmem_free(attr);
   670		return error;
   671	}
   672	

---
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" (35814 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ