All of lore.kernel.org
 help / color / mirror / Atom feed
* net/rxrpc/peer_event.c:265 rxrpc_encap_err_rcv() error: uninitialized symbol 'err'.
@ 2022-09-16 17:07 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-09-16 17:07 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 8846 bytes --]

BCC: lkp(a)intel.com
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: David Howells <dhowells@redhat.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   6879c2d3b96039ff1668b4328a4d0dd3ea952cff
commit: ac56a0b48da86fd1b4389632fb7c4c8a5d86eefa rxrpc: Fix ICMP/ICMP6 error handling
date:   2 weeks ago
:::::: branch date: 3 hours ago
:::::: commit date: 2 weeks ago
config: m68k-randconfig-m031-20220914 (https://download.01.org/0day-ci/archive/20220917/202209170122.tA85L5qc-lkp(a)intel.com/config)
compiler: m68k-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
net/rxrpc/peer_event.c:265 rxrpc_encap_err_rcv() error: uninitialized symbol 'err'.

vim +/err +265 net/rxrpc/peer_event.c

ac56a0b48da86f David Howells 2022-08-26  151  
ac56a0b48da86f David Howells 2022-08-26  152  /*
ac56a0b48da86f David Howells 2022-08-26  153   * Handle an error received on the local endpoint as a tunnel.
ac56a0b48da86f David Howells 2022-08-26  154   */
ac56a0b48da86f David Howells 2022-08-26  155  void rxrpc_encap_err_rcv(struct sock *sk, struct sk_buff *skb,
ac56a0b48da86f David Howells 2022-08-26  156  			 unsigned int udp_offset)
ac56a0b48da86f David Howells 2022-08-26  157  {
ac56a0b48da86f David Howells 2022-08-26  158  	struct sock_extended_err ee;
ac56a0b48da86f David Howells 2022-08-26  159  	struct sockaddr_rxrpc srx;
ac56a0b48da86f David Howells 2022-08-26  160  	struct rxrpc_local *local;
ac56a0b48da86f David Howells 2022-08-26  161  	struct rxrpc_peer *peer;
ac56a0b48da86f David Howells 2022-08-26  162  	unsigned int info = 0;
ac56a0b48da86f David Howells 2022-08-26  163  	int err;
ac56a0b48da86f David Howells 2022-08-26  164  	u8 version = ip_hdr(skb)->version;
ac56a0b48da86f David Howells 2022-08-26  165  	u8 type = icmp_hdr(skb)->type;
ac56a0b48da86f David Howells 2022-08-26  166  	u8 code = icmp_hdr(skb)->code;
ac56a0b48da86f David Howells 2022-08-26  167  
ac56a0b48da86f David Howells 2022-08-26  168  	rcu_read_lock();
ac56a0b48da86f David Howells 2022-08-26  169  	local = rcu_dereference_sk_user_data(sk);
ac56a0b48da86f David Howells 2022-08-26  170  	if (unlikely(!local)) {
ac56a0b48da86f David Howells 2022-08-26  171  		rcu_read_unlock();
ac56a0b48da86f David Howells 2022-08-26  172  		return;
ac56a0b48da86f David Howells 2022-08-26  173  	}
ac56a0b48da86f David Howells 2022-08-26  174  
ac56a0b48da86f David Howells 2022-08-26  175  	rxrpc_new_skb(skb, rxrpc_skb_received);
ac56a0b48da86f David Howells 2022-08-26  176  
ac56a0b48da86f David Howells 2022-08-26  177  	switch (ip_hdr(skb)->version) {
ac56a0b48da86f David Howells 2022-08-26  178  	case IPVERSION:
ac56a0b48da86f David Howells 2022-08-26  179  		peer = rxrpc_lookup_peer_icmp_rcu(local, skb, udp_offset,
ac56a0b48da86f David Howells 2022-08-26  180  						  &info, &srx);
ac56a0b48da86f David Howells 2022-08-26  181  		break;
ac56a0b48da86f David Howells 2022-08-26  182  #ifdef CONFIG_AF_RXRPC_IPV6
ac56a0b48da86f David Howells 2022-08-26  183  	case 6:
ac56a0b48da86f David Howells 2022-08-26  184  		peer = rxrpc_lookup_peer_icmp6_rcu(local, skb, udp_offset,
ac56a0b48da86f David Howells 2022-08-26  185  						   &info, &srx);
ac56a0b48da86f David Howells 2022-08-26  186  		break;
ac56a0b48da86f David Howells 2022-08-26  187  #endif
ac56a0b48da86f David Howells 2022-08-26  188  	default:
ac56a0b48da86f David Howells 2022-08-26  189  		rcu_read_unlock();
ac56a0b48da86f David Howells 2022-08-26  190  		return;
ac56a0b48da86f David Howells 2022-08-26  191  	}
ac56a0b48da86f David Howells 2022-08-26  192  
ac56a0b48da86f David Howells 2022-08-26  193  	if (peer && !rxrpc_get_peer_maybe(peer))
ac56a0b48da86f David Howells 2022-08-26  194  		peer = NULL;
ac56a0b48da86f David Howells 2022-08-26  195  	if (!peer) {
ac56a0b48da86f David Howells 2022-08-26  196  		rcu_read_unlock();
ac56a0b48da86f David Howells 2022-08-26  197  		return;
ac56a0b48da86f David Howells 2022-08-26  198  	}
ac56a0b48da86f David Howells 2022-08-26  199  
ac56a0b48da86f David Howells 2022-08-26  200  	memset(&ee, 0, sizeof(ee));
ac56a0b48da86f David Howells 2022-08-26  201  
ac56a0b48da86f David Howells 2022-08-26  202  	switch (version) {
ac56a0b48da86f David Howells 2022-08-26  203  	case IPVERSION:
ac56a0b48da86f David Howells 2022-08-26  204  		switch (type) {
ac56a0b48da86f David Howells 2022-08-26  205  		case ICMP_DEST_UNREACH:
ac56a0b48da86f David Howells 2022-08-26  206  			switch (code) {
ac56a0b48da86f David Howells 2022-08-26  207  			case ICMP_FRAG_NEEDED:
ac56a0b48da86f David Howells 2022-08-26  208  				rxrpc_adjust_mtu(peer, info);
ac56a0b48da86f David Howells 2022-08-26  209  				rcu_read_unlock();
ac56a0b48da86f David Howells 2022-08-26  210  				rxrpc_put_peer(peer);
ac56a0b48da86f David Howells 2022-08-26  211  				return;
ac56a0b48da86f David Howells 2022-08-26  212  			default:
ac56a0b48da86f David Howells 2022-08-26  213  				break;
ac56a0b48da86f David Howells 2022-08-26  214  			}
ac56a0b48da86f David Howells 2022-08-26  215  
ac56a0b48da86f David Howells 2022-08-26  216  			err = EHOSTUNREACH;
ac56a0b48da86f David Howells 2022-08-26  217  			if (code <= NR_ICMP_UNREACH) {
ac56a0b48da86f David Howells 2022-08-26  218  				/* Might want to do something different with
ac56a0b48da86f David Howells 2022-08-26  219  				 * non-fatal errors
ac56a0b48da86f David Howells 2022-08-26  220  				 */
ac56a0b48da86f David Howells 2022-08-26  221  				//harderr = icmp_err_convert[code].fatal;
ac56a0b48da86f David Howells 2022-08-26  222  				err = icmp_err_convert[code].errno;
ac56a0b48da86f David Howells 2022-08-26  223  			}
ac56a0b48da86f David Howells 2022-08-26  224  			break;
ac56a0b48da86f David Howells 2022-08-26  225  
ac56a0b48da86f David Howells 2022-08-26  226  		case ICMP_TIME_EXCEEDED:
ac56a0b48da86f David Howells 2022-08-26  227  			err = EHOSTUNREACH;
ac56a0b48da86f David Howells 2022-08-26  228  			break;
ac56a0b48da86f David Howells 2022-08-26  229  		default:
ac56a0b48da86f David Howells 2022-08-26  230  			err = EPROTO;
ac56a0b48da86f David Howells 2022-08-26  231  			break;
ac56a0b48da86f David Howells 2022-08-26  232  		}
ac56a0b48da86f David Howells 2022-08-26  233  
ac56a0b48da86f David Howells 2022-08-26  234  		ee.ee_origin = SO_EE_ORIGIN_ICMP;
ac56a0b48da86f David Howells 2022-08-26  235  		ee.ee_type = type;
ac56a0b48da86f David Howells 2022-08-26  236  		ee.ee_code = code;
ac56a0b48da86f David Howells 2022-08-26  237  		ee.ee_errno = err;
ac56a0b48da86f David Howells 2022-08-26  238  		break;
ac56a0b48da86f David Howells 2022-08-26  239  
ac56a0b48da86f David Howells 2022-08-26  240  #ifdef CONFIG_AF_RXRPC_IPV6
ac56a0b48da86f David Howells 2022-08-26  241  	case 6:
ac56a0b48da86f David Howells 2022-08-26  242  		switch (type) {
ac56a0b48da86f David Howells 2022-08-26  243  		case ICMPV6_PKT_TOOBIG:
ac56a0b48da86f David Howells 2022-08-26  244  			rxrpc_adjust_mtu(peer, info);
ac56a0b48da86f David Howells 2022-08-26  245  			rcu_read_unlock();
ac56a0b48da86f David Howells 2022-08-26  246  			rxrpc_put_peer(peer);
ac56a0b48da86f David Howells 2022-08-26  247  			return;
ac56a0b48da86f David Howells 2022-08-26  248  		}
ac56a0b48da86f David Howells 2022-08-26  249  
ac56a0b48da86f David Howells 2022-08-26  250  		icmpv6_err_convert(type, code, &err);
ac56a0b48da86f David Howells 2022-08-26  251  
ac56a0b48da86f David Howells 2022-08-26  252  		if (err == EACCES)
ac56a0b48da86f David Howells 2022-08-26  253  			err = EHOSTUNREACH;
ac56a0b48da86f David Howells 2022-08-26  254  
ac56a0b48da86f David Howells 2022-08-26  255  		ee.ee_origin = SO_EE_ORIGIN_ICMP6;
ac56a0b48da86f David Howells 2022-08-26  256  		ee.ee_type = type;
ac56a0b48da86f David Howells 2022-08-26  257  		ee.ee_code = code;
ac56a0b48da86f David Howells 2022-08-26  258  		ee.ee_errno = err;
ac56a0b48da86f David Howells 2022-08-26  259  		break;
ac56a0b48da86f David Howells 2022-08-26  260  #endif
ac56a0b48da86f David Howells 2022-08-26  261  	}
ac56a0b48da86f David Howells 2022-08-26  262  
ac56a0b48da86f David Howells 2022-08-26  263  	trace_rxrpc_rx_icmp(peer, &ee, &srx);
ac56a0b48da86f David Howells 2022-08-26  264  
ac56a0b48da86f David Howells 2022-08-26 @265  	rxrpc_distribute_error(peer, err, RXRPC_CALL_NETWORK_ERROR);
ac56a0b48da86f David Howells 2022-08-26  266  	rcu_read_unlock();
ac56a0b48da86f David Howells 2022-08-26  267  	rxrpc_put_peer(peer);
ac56a0b48da86f David Howells 2022-08-26  268  }
ac56a0b48da86f David Howells 2022-08-26  269  

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-16 17:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-16 17:07 net/rxrpc/peer_event.c:265 rxrpc_encap_err_rcv() error: uninitialized symbol 'err' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.