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]
Date:   Wed, 27 Jul 2022 12:08:28 +0200
From:   Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To:     Nathan Chancellor <nathan@...nel.org>
Cc:     kernel test robot <lkp@...el.com>,
        Daniel Rosenberg <drosen@...gle.com>, llvm@...ts.linux.dev,
        kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Dennis Cagle <d-cagle@...eaurora.org>,
        Lee Jones <lee.jones@...aro.org>
Subject: Re: [linux-stable-rc:linux-4.9.y 967/2229]
 drivers/staging/android/ion/ion-ioctl.c:71:6: warning: variable 'ret' is
 used uninitialized whenever 'if' condition is false

On Mon, Jul 25, 2022 at 08:39:07AM -0700, Nathan Chancellor wrote:
> On Sun, Jul 24, 2022 at 01:39:50PM +0800, kernel test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.y
> > head:   65be5f5665a580424a7b1102f1a04c4259c559b5
> > commit: a8200613c8c9fbaf7b55d4d438376ebaf0c4ce7e [967/2229] ion: Protect kref from userspace manipulation
> > config: mips-randconfig-r034-20220719 (https://download.01.org/0day-ci/archive/20220724/202207241311.Dv86CbAo-lkp@intel.com/config)
> > compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project fa0c7639e91fa1cd0cf2ff0445a1634a90fe850a)
> > 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 mips cross compiling tool for clang build
> >         # apt-get install binutils-mipsel-linux-gnu
> >         # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=a8200613c8c9fbaf7b55d4d438376ebaf0c4ce7e
> >         git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> >         git fetch --no-tags linux-stable-rc linux-4.9.y
> >         git checkout a8200613c8c9fbaf7b55d4d438376ebaf0c4ce7e
> >         # save the config file
> >         mkdir build_dir && cp config build_dir/.config
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/staging/android/ion/
> > 
> > If you fix the issue, kindly add following tag where applicable
> > Reported-by: kernel test robot <lkp@...el.com>
> > 
> > All warnings (new ones prefixed by >>):
> > 
> > >> drivers/staging/android/ion/ion-ioctl.c:71:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
> >            if (--handle->user_ref_count == 0)
> >                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >    drivers/staging/android/ion/ion-ioctl.c:74:9: note: uninitialized use occurs here
> >            return ret;
> >                   ^~~
> >    drivers/staging/android/ion/ion-ioctl.c:71:2: note: remove the 'if' if its condition is always true
> >            if (--handle->user_ref_count == 0)
> >            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >    drivers/staging/android/ion/ion-ioctl.c:69:9: note: initialize the variable 'ret' to silence this warning
> >            int ret;
> >                   ^
> >                    = 0
> >    1 warning generated.
> > 
> > 
> > vim +71 drivers/staging/android/ion/ion-ioctl.c
> > 
> >     65	
> >     66	/* Must hold the client lock */
> >     67	static int user_ion_handle_put_nolock(struct ion_handle *handle)
> >     68	{
> >     69		int ret;
> >     70	
> >   > 71		if (--handle->user_ref_count == 0)
> >     72			ret = ion_handle_put_nolock(handle);
> >     73	
> >     74		return ret;
> >     75	}
> >     76	
> 
> Might as well just be
> 
> static void user_ion_handle_put_nolock(struct ion_handle *handle)
> {
> 	if (--handle->user_ref_count == 0)
> 		ion_handle_put_nolock(handle);
> }
> 
> since user_ion_free_nolock() doesn't check the return value of
> user_ion_handle_put_nolock()? I can send a patch if people care (I know
> 4.9 is a bit on the older side).

A patch would be nice, thanks!

Powered by blists - more mailing lists