Hi yuan, Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/yuan-linyu/netlink-optimize-err-assignment/20171121-100409 config: i386-randconfig-x001-201747 (attached as .config) compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026 reproduce: # save the attached .config to linux build tree make ARCH=i386 Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): net/netlink/af_netlink.c: In function 'netlink_setsockopt': >> net/netlink/af_netlink.c:1614:19: warning: 'val' may be used uninitialized >> in this function [-Wmaybe-uninitialized] if (!val || val - 1 >= nlk->ngroups) ~~~~^~~ vim +/val +1614 net/netlink/af_netlink.c 84659eb52 Johannes Berg 2007-07-18 1584 9a4595bc7 Patrick McHardy 2005-08-15 1585 static int netlink_setsockopt(struct socket *sock, int level, int optname, b7058842c David S. Miller 2009-09-30 1586 char __user *optval, unsigned int optlen) 9a4595bc7 Patrick McHardy 2005-08-15 1587 { 9a4595bc7 Patrick McHardy 2005-08-15 1588 struct sock *sk = sock->sk; 9a4595bc7 Patrick McHardy 2005-08-15 1589 struct netlink_sock *nlk = nlk_sk(sk); f3b56fc83 yuan linyu 2017-11-19 1590 unsigned int val; f3b56fc83 yuan linyu 2017-11-19 1591 int err = 0; 9a4595bc7 Patrick McHardy 2005-08-15 1592 9a4595bc7 Patrick McHardy 2005-08-15 1593 if (level != SOL_NETLINK) 9a4595bc7 Patrick McHardy 2005-08-15 1594 return -ENOPROTOOPT; 9a4595bc7 Patrick McHardy 2005-08-15 1595 d1b4c689d Florian Westphal 2016-02-18 1596 if (optlen >= sizeof(int) && eb4965344 Johannes Berg 2007-07-18 1597 get_user(val, (unsigned int __user *)optval)) 9a4595bc7 Patrick McHardy 2005-08-15 1598 return -EFAULT; 9a4595bc7 Patrick McHardy 2005-08-15 1599 9a4595bc7 Patrick McHardy 2005-08-15 1600 switch (optname) { 9a4595bc7 Patrick McHardy 2005-08-15 1601 case NETLINK_PKTINFO: 9a4595bc7 Patrick McHardy 2005-08-15 1602 if (val) cc3a572fe Nicolas Dichtel 2015-05-07 1603 nlk->flags |= NETLINK_F_RECV_PKTINFO; 9a4595bc7 Patrick McHardy 2005-08-15 1604 else cc3a572fe Nicolas Dichtel 2015-05-07 1605 nlk->flags &= ~NETLINK_F_RECV_PKTINFO; 9a4595bc7 Patrick McHardy 2005-08-15 1606 break; 9a4595bc7 Patrick McHardy 2005-08-15 1607 case NETLINK_ADD_MEMBERSHIP: 9a4595bc7 Patrick McHardy 2005-08-15 1608 case NETLINK_DROP_MEMBERSHIP: { 5187cd055 Eric W. Biederman 2014-04-23 1609 if (!netlink_allowed(sock, NL_CFG_F_NONROOT_RECV)) 9a4595bc7 Patrick McHardy 2005-08-15 1610 return -EPERM; b4ff4f041 Johannes Berg 2007-07-18 1611 err = netlink_realloc_groups(sk); 513c25000 Patrick McHardy 2005-09-06 1612 if (err) 513c25000 Patrick McHardy 2005-09-06 1613 return err; 9a4595bc7 Patrick McHardy 2005-08-15 @1614 if (!val || val - 1 >= nlk->ngroups) 9a4595bc7 Patrick McHardy 2005-08-15 1615 return -EINVAL; 7774d5e03 Richard Guy Briggs 2014-04-22 1616 if (optname == NETLINK_ADD_MEMBERSHIP && nlk->netlink_bind) { 023e2cfa3 Johannes Berg 2014-12-23 1617 err = nlk->netlink_bind(sock_net(sk), val); 4f5209005 Richard Guy Briggs 2014-04-22 1618 if (err) 4f5209005 Richard Guy Briggs 2014-04-22 1619 return err; 4f5209005 Richard Guy Briggs 2014-04-22 1620 } 9a4595bc7 Patrick McHardy 2005-08-15 1621 netlink_table_grab(); 84659eb52 Johannes Berg 2007-07-18 1622 netlink_update_socket_mc(nlk, val, 84659eb52 Johannes Berg 2007-07-18 1623 optname == NETLINK_ADD_MEMBERSHIP); 9a4595bc7 Patrick McHardy 2005-08-15 1624 netlink_table_ungrab(); 7774d5e03 Richard Guy Briggs 2014-04-22 1625 if (optname == NETLINK_DROP_MEMBERSHIP && nlk->netlink_unbind) 023e2cfa3 Johannes Berg 2014-12-23 1626 nlk->netlink_unbind(sock_net(sk), val); 9a4595bc7 Patrick McHardy 2005-08-15 1627 break; 9a4595bc7 Patrick McHardy 2005-08-15 1628 } be0c22a46 Pablo Neira Ayuso 2009-02-18 1629 case NETLINK_BROADCAST_ERROR: be0c22a46 Pablo Neira Ayuso 2009-02-18 1630 if (val) cc3a572fe Nicolas Dichtel 2015-05-07 1631 nlk->flags |= NETLINK_F_BROADCAST_SEND_ERROR; be0c22a46 Pablo Neira Ayuso 2009-02-18 1632 else cc3a572fe Nicolas Dichtel 2015-05-07 1633 nlk->flags &= ~NETLINK_F_BROADCAST_SEND_ERROR; be0c22a46 Pablo Neira Ayuso 2009-02-18 1634 break; 38938bfe3 Pablo Neira Ayuso 2009-03-24 1635 case NETLINK_NO_ENOBUFS: 38938bfe3 Pablo Neira Ayuso 2009-03-24 1636 if (val) { cc3a572fe Nicolas Dichtel 2015-05-07 1637 nlk->flags |= NETLINK_F_RECV_NO_ENOBUFS; cc3a572fe Nicolas Dichtel 2015-05-07 1638 clear_bit(NETLINK_S_CONGESTED, &nlk->state); 38938bfe3 Pablo Neira Ayuso 2009-03-24 1639 wake_up_interruptible(&nlk->wait); 658cb354e Eric Dumazet 2012-04-22 1640 } else { cc3a572fe Nicolas Dichtel 2015-05-07 1641 nlk->flags &= ~NETLINK_F_RECV_NO_ENOBUFS; 658cb354e Eric Dumazet 2012-04-22 1642 } 38938bfe3 Pablo Neira Ayuso 2009-03-24 1643 break; 59324cf35 Nicolas Dichtel 2015-05-07 1644 case NETLINK_LISTEN_ALL_NSID: 59324cf35 Nicolas Dichtel 2015-05-07 1645 if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_BROADCAST)) 59324cf35 Nicolas Dichtel 2015-05-07 1646 return -EPERM; 59324cf35 Nicolas Dichtel 2015-05-07 1647 59324cf35 Nicolas Dichtel 2015-05-07 1648 if (val) 59324cf35 Nicolas Dichtel 2015-05-07 1649 nlk->flags |= NETLINK_F_LISTEN_ALL_NSID; 59324cf35 Nicolas Dichtel 2015-05-07 1650 else 59324cf35 Nicolas Dichtel 2015-05-07 1651 nlk->flags &= ~NETLINK_F_LISTEN_ALL_NSID; 59324cf35 Nicolas Dichtel 2015-05-07 1652 break; 0a6a3a23e Christophe Ricard 2015-08-28 1653 case NETLINK_CAP_ACK: 0a6a3a23e Christophe Ricard 2015-08-28 1654 if (val) 0a6a3a23e Christophe Ricard 2015-08-28 1655 nlk->flags |= NETLINK_F_CAP_ACK; 0a6a3a23e Christophe Ricard 2015-08-28 1656 else 0a6a3a23e Christophe Ricard 2015-08-28 1657 nlk->flags &= ~NETLINK_F_CAP_ACK; 0a6a3a23e Christophe Ricard 2015-08-28 1658 break; 2d4bc9336 Johannes Berg 2017-04-12 1659 case NETLINK_EXT_ACK: 2d4bc9336 Johannes Berg 2017-04-12 1660 if (val) 2d4bc9336 Johannes Berg 2017-04-12 1661 nlk->flags |= NETLINK_F_EXT_ACK; 2d4bc9336 Johannes Berg 2017-04-12 1662 else 2d4bc9336 Johannes Berg 2017-04-12 1663 nlk->flags &= ~NETLINK_F_EXT_ACK; 2d4bc9336 Johannes Berg 2017-04-12 1664 break; 9a4595bc7 Patrick McHardy 2005-08-15 1665 default: 9a4595bc7 Patrick McHardy 2005-08-15 1666 err = -ENOPROTOOPT; 9a4595bc7 Patrick McHardy 2005-08-15 1667 } 9a4595bc7 Patrick McHardy 2005-08-15 1668 return err; 9a4595bc7 Patrick McHardy 2005-08-15 1669 } 9a4595bc7 Patrick McHardy 2005-08-15 1670 :::::: The code at line 1614 was first introduced by commit :::::: 9a4595bc7e67962f13232ee55a64e063062c3a99 [NETLINK]: Add set/getsockopt options to support more than 32 groups :::::: TO: Patrick McHardy <ka...@trash.net> :::::: CC: David S. Miller <da...@sunset.davemloft.net> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip