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>] [<thread-prev] [day] [month] [year] [list]
Date:   Wed, 13 Oct 2021 15:31:43 +0800
From:   kernel test robot <lkp@...el.com>
To:     Ralf Baechle <ralf@...ux-mips.org>, netdev@...r.kernel.org
Cc:     llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
        Jakub Kicinski <kuba@...nel.org>,
        Christoph Hellwig <hch@....de>,
        Thomas Osterried <thomas@...erried.de>,
        linux-hams@...r.kernel.org
Subject: Re: [PATCH 2/2] ax25: Fix deadlock hang during concurrent read and
 write on socket.

Hi Ralf,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net/master]
[also build test WARNING on net-next/master horms-ipvs/master linus/master v5.15-rc5 next-20211012]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Ralf-Baechle/ax25-Fix-use-of-copy_from_sockptr-in-ax25_setsockopt/20211013-042226
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 4d4a223a86afe658cd878800f09458e8bb54415d
config: x86_64-randconfig-a014-20211012 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project adf55ac6657693f7bfbe3087b599b4031a765a44)
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/0day-ci/linux/commit/89cd241b1014e6501130d9116ea6ca367b10dc6a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Ralf-Baechle/ax25-Fix-use-of-copy_from_sockptr-in-ax25_setsockopt/20211013-042226
        git checkout 89cd241b1014e6501130d9116ea6ca367b10dc6a
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 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 >>):

>> net/ax25/af_ax25.c:1685:1: warning: unused label 'out' [-Wunused-label]
   out:
   ^~~~
   1 warning generated.


vim +/out +1685 net/ax25/af_ax25.c

^1da177e4c3f41 Linus Torvalds           2005-04-16  1618  
1b784140474e4f Ying Xue                 2015-03-02  1619  static int ax25_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
1b784140474e4f Ying Xue                 2015-03-02  1620  			int flags)
^1da177e4c3f41 Linus Torvalds           2005-04-16  1621  {
^1da177e4c3f41 Linus Torvalds           2005-04-16  1622  	struct sock *sk = sock->sk;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1623  	struct sk_buff *skb;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1624  	int copied;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1625  	int err = 0;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1626  
^1da177e4c3f41 Linus Torvalds           2005-04-16  1627  	/*
^1da177e4c3f41 Linus Torvalds           2005-04-16  1628  	 * 	This works for seqpacket too. The receiver has ordered the
^1da177e4c3f41 Linus Torvalds           2005-04-16  1629  	 *	queue for us! We do one quick check first though
^1da177e4c3f41 Linus Torvalds           2005-04-16  1630  	 */
^1da177e4c3f41 Linus Torvalds           2005-04-16  1631  	if (sk->sk_type == SOCK_SEQPACKET && sk->sk_state != TCP_ESTABLISHED) {
^1da177e4c3f41 Linus Torvalds           2005-04-16  1632  		err =  -ENOTCONN;
89cd241b1014e6 Thomas Habets            2021-10-12  1633  		goto out_nolock;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1634  	}
^1da177e4c3f41 Linus Torvalds           2005-04-16  1635  
^1da177e4c3f41 Linus Torvalds           2005-04-16  1636  	/* Now we can treat all alike */
^1da177e4c3f41 Linus Torvalds           2005-04-16  1637  	skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
^1da177e4c3f41 Linus Torvalds           2005-04-16  1638  				flags & MSG_DONTWAIT, &err);
^1da177e4c3f41 Linus Torvalds           2005-04-16  1639  	if (skb == NULL)
89cd241b1014e6 Thomas Habets            2021-10-12  1640  		goto out_nolock;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1641  
89cd241b1014e6 Thomas Habets            2021-10-12  1642  	lock_sock(sk);
3200392b88dd25 David Miller             2015-06-25  1643  	if (!sk_to_ax25(sk)->pidincl)
^1da177e4c3f41 Linus Torvalds           2005-04-16  1644  		skb_pull(skb, 1);		/* Remove PID */
^1da177e4c3f41 Linus Torvalds           2005-04-16  1645  
badff6d01a8589 Arnaldo Carvalho de Melo 2007-03-13  1646  	skb_reset_transport_header(skb);
^1da177e4c3f41 Linus Torvalds           2005-04-16  1647  	copied = skb->len;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1648  
^1da177e4c3f41 Linus Torvalds           2005-04-16  1649  	if (copied > size) {
^1da177e4c3f41 Linus Torvalds           2005-04-16  1650  		copied = size;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1651  		msg->msg_flags |= MSG_TRUNC;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1652  	}
^1da177e4c3f41 Linus Torvalds           2005-04-16  1653  
51f3d02b980a33 David S. Miller          2014-11-05  1654  	skb_copy_datagram_msg(skb, 0, msg, copied);
^1da177e4c3f41 Linus Torvalds           2005-04-16  1655  
f3d3342602f8bc Hannes Frederic Sowa     2013-11-21  1656  	if (msg->msg_name) {
^1da177e4c3f41 Linus Torvalds           2005-04-16  1657  		ax25_digi digi;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1658  		ax25_address src;
98e399f82ab3a6 Arnaldo Carvalho de Melo 2007-03-19  1659  		const unsigned char *mac = skb_mac_header(skb);
342dfc306fb321 Steffen Hurrle           2014-01-17  1660  		DECLARE_SOCKADDR(struct sockaddr_ax25 *, sax, msg->msg_name);
^1da177e4c3f41 Linus Torvalds           2005-04-16  1661  
ef3313e84acbf3 Mathias Krause           2013-04-07  1662  		memset(sax, 0, sizeof(struct full_sockaddr_ax25));
98e399f82ab3a6 Arnaldo Carvalho de Melo 2007-03-19  1663  		ax25_addr_parse(mac + 1, skb->data - mac - 1, &src, NULL,
98e399f82ab3a6 Arnaldo Carvalho de Melo 2007-03-19  1664  				&digi, NULL, NULL);
^1da177e4c3f41 Linus Torvalds           2005-04-16  1665  		sax->sax25_family = AF_AX25;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1666  		/* We set this correctly, even though we may not let the
^1da177e4c3f41 Linus Torvalds           2005-04-16  1667  		   application know the digi calls further down (because it
^1da177e4c3f41 Linus Torvalds           2005-04-16  1668  		   did NOT ask to know them).  This could get political... **/
^1da177e4c3f41 Linus Torvalds           2005-04-16  1669  		sax->sax25_ndigis = digi.ndigi;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1670  		sax->sax25_call   = src;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1671  
^1da177e4c3f41 Linus Torvalds           2005-04-16  1672  		if (sax->sax25_ndigis != 0) {
^1da177e4c3f41 Linus Torvalds           2005-04-16  1673  			int ct;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1674  			struct full_sockaddr_ax25 *fsa = (struct full_sockaddr_ax25 *)sax;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1675  
^1da177e4c3f41 Linus Torvalds           2005-04-16  1676  			for (ct = 0; ct < digi.ndigi; ct++)
^1da177e4c3f41 Linus Torvalds           2005-04-16  1677  				fsa->fsa_digipeater[ct] = digi.calls[ct];
^1da177e4c3f41 Linus Torvalds           2005-04-16  1678  		}
^1da177e4c3f41 Linus Torvalds           2005-04-16  1679  		msg->msg_namelen = sizeof(struct full_sockaddr_ax25);
^1da177e4c3f41 Linus Torvalds           2005-04-16  1680  	}
^1da177e4c3f41 Linus Torvalds           2005-04-16  1681  
^1da177e4c3f41 Linus Torvalds           2005-04-16  1682  	skb_free_datagram(sk, skb);
^1da177e4c3f41 Linus Torvalds           2005-04-16  1683  	err = copied;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1684  
^1da177e4c3f41 Linus Torvalds           2005-04-16 @1685  out:
^1da177e4c3f41 Linus Torvalds           2005-04-16  1686  	release_sock(sk);
89cd241b1014e6 Thomas Habets            2021-10-12  1687  out_nolock:
^1da177e4c3f41 Linus Torvalds           2005-04-16  1688  
^1da177e4c3f41 Linus Torvalds           2005-04-16  1689  	return err;
^1da177e4c3f41 Linus Torvalds           2005-04-16  1690  }
^1da177e4c3f41 Linus Torvalds           2005-04-16  1691  

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ