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, 31 Aug 2022 07:41:26 +0800
From:   kernel test robot <lkp@...el.com>
To:     David Howells <dhowells@...hat.com>
Cc:     llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
        Ammar Faizi <ammarfaizi2@...weeb.org>,
        GNU/Weeb Mailing List <gwml@...r.gnuweeb.org>,
        linux-kernel@...r.kernel.org
Subject: [ammarfaizi2-block:dhowells/linux-fs/rxrpc-fixes 1/5]
 net/rxrpc/peer_event.c:416:6: warning: variable 'peer' is used uninitialized
 whenever 'if' condition is false

tree:   https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/rxrpc-fixes
head:   5ba1502ed90c38548d56a41156440fa70aed70ed
commit: b445daa0f2ca96635e9620cef26a72619ce3644a [1/5] rxrpc: Fix ICMP/ICMP6 error handling
config: hexagon-buildonly-randconfig-r006-20220830 (https://download.01.org/0day-ci/archive/20220831/202208310714.iEB29eJf-lkp@intel.com/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project c7df82e4693c19e3fd2e25c83eb04d9deb7b7b59)
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://github.com/ammarfaizi2/linux-block/commit/b445daa0f2ca96635e9620cef26a72619ce3644a
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/rxrpc-fixes
        git checkout b445daa0f2ca96635e9620cef26a72619ce3644a
        # 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=hexagon SHELL=/bin/bash net/rxrpc/

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 >>):

>> net/rxrpc/peer_event.c:416:6: warning: variable 'peer' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
           if (serr->ee.ee_origin == SO_EE_ORIGIN_LOCAL) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rxrpc/peer_event.c:428:17: note: uninitialized use occurs here
           rxrpc_put_peer(peer);
                          ^~~~
   net/rxrpc/peer_event.c:416:2: note: remove the 'if' if its condition is always true
           if (serr->ee.ee_origin == SO_EE_ORIGIN_LOCAL) {
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rxrpc/peer_event.c:391:25: note: initialize the variable 'peer' to silence this warning
           struct rxrpc_peer *peer;
                                  ^
                                   = NULL
   1 warning generated.


vim +416 net/rxrpc/peer_event.c

   382	
   383	/*
   384	 * Handle an error received on the local endpoint.
   385	 */
   386	void rxrpc_error_report(struct sock *sk)
   387	{
   388		struct sock_exterr_skb *serr;
   389		struct sockaddr_rxrpc srx;
   390		struct rxrpc_local *local;
   391		struct rxrpc_peer *peer;
   392		struct sk_buff *skb;
   393	
   394		rcu_read_lock();
   395		local = rcu_dereference_sk_user_data(sk);
   396		if (unlikely(!local)) {
   397			rcu_read_unlock();
   398			return;
   399		}
   400		_enter("%p{%d}", sk, local->debug_id);
   401	
   402		/* Clear the outstanding error value on the socket so that it doesn't
   403		 * cause kernel_sendmsg() to return it later.
   404		 */
   405		sock_error(sk);
   406	
   407		skb = sock_dequeue_err_skb(sk);
   408		if (!skb) {
   409			rcu_read_unlock();
   410			_leave("UDP socket errqueue empty");
   411			return;
   412		}
   413		rxrpc_new_skb(skb, rxrpc_skb_received);
   414		serr = SKB_EXT_ERR(skb);
   415	
 > 416		if (serr->ee.ee_origin == SO_EE_ORIGIN_LOCAL) {
   417			peer = rxrpc_lookup_peer_local_rcu(local, skb, &srx);
   418			if (peer && !rxrpc_get_peer_maybe(peer))
   419				peer = NULL;
   420			if (peer) {
   421				trace_rxrpc_rx_icmp(peer, &serr->ee, &srx);
   422				rxrpc_store_error(peer, serr);
   423			}
   424		}
   425	
   426		rcu_read_unlock();
   427		rxrpc_free_skb(skb, rxrpc_skb_freed);
   428		rxrpc_put_peer(peer);
   429		_leave("");
   430	}
   431	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ