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]
Message-ID: <202501031059.OHdpp0W8-lkp@intel.com>
Date: Fri, 3 Jan 2025 10:11:29 +0800
From: kernel test robot <lkp@...el.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: net/8021q/vlan.c:238:46: warning: '%.4i' directive output may be
 truncated writing between 4 and 5 bytes into a region of size between 0 and
 15

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   0bc21e701a6ffacfdde7f04f87d664d82e8a13bf
commit: c269a24ce057abfc31130960e96ab197ef6ab196 net: make free_netdev() more lenient with unregistering devices
date:   4 years ago
config: alpha-randconfig-r026-20211101 (https://download.01.org/0day-ci/archive/20250103/202501031059.OHdpp0W8-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 12.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250103/202501031059.OHdpp0W8-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501031059.OHdpp0W8-lkp@intel.com/

All warnings (new ones prefixed by >>):

   net/8021q/vlan.c: In function 'vlan_ioctl_handler':
   net/8021q/vlan.c:250:46: warning: '%i' directive output may be truncated writing between 1 and 5 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
     250 |                 snprintf(name, IFNAMSIZ, "%s.%i", real_dev->name, vlan_id);
         |                                              ^~
   In function 'register_vlan_device',
       inlined from 'vlan_ioctl_handler' at net/8021q/vlan.c:625:9:
   net/8021q/vlan.c:250:42: note: directive argument in the range [0, 65535]
     250 |                 snprintf(name, IFNAMSIZ, "%s.%i", real_dev->name, vlan_id);
         |                                          ^~~~~~~
   net/8021q/vlan.c:250:17: note: 'snprintf' output between 3 and 22 bytes into a destination of size 16
     250 |                 snprintf(name, IFNAMSIZ, "%s.%i", real_dev->name, vlan_id);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/8021q/vlan.c: In function 'vlan_ioctl_handler':
>> net/8021q/vlan.c:238:46: warning: '%.4i' directive output may be truncated writing between 4 and 5 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
     238 |                 snprintf(name, IFNAMSIZ, "%s.%.4i", real_dev->name, vlan_id);
         |                                              ^~~~
   In function 'register_vlan_device',
       inlined from 'vlan_ioctl_handler' at net/8021q/vlan.c:625:9:
   net/8021q/vlan.c:238:42: note: directive argument in the range [0, 65535]
     238 |                 snprintf(name, IFNAMSIZ, "%s.%.4i", real_dev->name, vlan_id);
         |                                          ^~~~~~~~~
   net/8021q/vlan.c:238:17: note: 'snprintf' output between 6 and 22 bytes into a destination of size 16
     238 |                 snprintf(name, IFNAMSIZ, "%s.%.4i", real_dev->name, vlan_id);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +238 net/8021q/vlan.c

e89fe42cd03c8f Patrick McHardy   2007-06-13  213  
c1d3ee9925ca71 Patrick McHardy   2007-06-13  214  /*  Attach a VLAN device to a mac address (ie Ethernet Card).
2ae0bf69b716d0 Patrick McHardy   2007-06-13  215   *  Returns 0 if the device was created or a negative error code otherwise.
c1d3ee9925ca71 Patrick McHardy   2007-06-13  216   */
9bb8582efb5555 Patrick McHardy   2008-07-08  217  static int register_vlan_device(struct net_device *real_dev, u16 vlan_id)
c1d3ee9925ca71 Patrick McHardy   2007-06-13  218  {
c1d3ee9925ca71 Patrick McHardy   2007-06-13  219  	struct net_device *new_dev;
0c0667a8548ef2 Wang Sheng-Hui    2013-08-03  220  	struct vlan_dev_priv *vlan;
7a17a2f79f54a9 Pavel Emelyanov   2008-04-16  221  	struct net *net = dev_net(real_dev);
7a17a2f79f54a9 Pavel Emelyanov   2008-04-16  222  	struct vlan_net *vn = net_generic(net, vlan_net_id);
c1d3ee9925ca71 Patrick McHardy   2007-06-13  223  	char name[IFNAMSIZ];
2ae0bf69b716d0 Patrick McHardy   2007-06-13  224  	int err;
c1d3ee9925ca71 Patrick McHardy   2007-06-13  225  
9bb8582efb5555 Patrick McHardy   2008-07-08  226  	if (vlan_id >= VLAN_VID_MASK)
2ae0bf69b716d0 Patrick McHardy   2007-06-13  227  		return -ERANGE;
c1d3ee9925ca71 Patrick McHardy   2007-06-13  228  
33fa382324ebd1 David Ahern       2018-05-17  229  	err = vlan_check_real_dev(real_dev, htons(ETH_P_8021Q), vlan_id,
33fa382324ebd1 David Ahern       2018-05-17  230  				  NULL);
2ae0bf69b716d0 Patrick McHardy   2007-06-13  231  	if (err < 0)
2ae0bf69b716d0 Patrick McHardy   2007-06-13  232  		return err;
c1d3ee9925ca71 Patrick McHardy   2007-06-13  233  
^1da177e4c3f41 Linus Torvalds    2005-04-16  234  	/* Gotta set up the fields for the device. */
7a17a2f79f54a9 Pavel Emelyanov   2008-04-16  235  	switch (vn->name_type) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  236  	case VLAN_NAME_TYPE_RAW_PLUS_VID:
^1da177e4c3f41 Linus Torvalds    2005-04-16  237  		/* name will look like:	 eth1.0005 */
9bb8582efb5555 Patrick McHardy   2008-07-08 @238  		snprintf(name, IFNAMSIZ, "%s.%.4i", real_dev->name, vlan_id);
^1da177e4c3f41 Linus Torvalds    2005-04-16  239  		break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  240  	case VLAN_NAME_TYPE_PLUS_VID_NO_PAD:
^1da177e4c3f41 Linus Torvalds    2005-04-16  241  		/* Put our vlan.VID in the name.
^1da177e4c3f41 Linus Torvalds    2005-04-16  242  		 * Name will look like:	 vlan5
^1da177e4c3f41 Linus Torvalds    2005-04-16  243  		 */
9bb8582efb5555 Patrick McHardy   2008-07-08  244  		snprintf(name, IFNAMSIZ, "vlan%i", vlan_id);
^1da177e4c3f41 Linus Torvalds    2005-04-16  245  		break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  246  	case VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD:
^1da177e4c3f41 Linus Torvalds    2005-04-16  247  		/* Put our vlan.VID in the name.
^1da177e4c3f41 Linus Torvalds    2005-04-16  248  		 * Name will look like:	 eth0.5
^1da177e4c3f41 Linus Torvalds    2005-04-16  249  		 */
9bb8582efb5555 Patrick McHardy   2008-07-08  250  		snprintf(name, IFNAMSIZ, "%s.%i", real_dev->name, vlan_id);
^1da177e4c3f41 Linus Torvalds    2005-04-16  251  		break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  252  	case VLAN_NAME_TYPE_PLUS_VID:
^1da177e4c3f41 Linus Torvalds    2005-04-16  253  		/* Put our vlan.VID in the name.
^1da177e4c3f41 Linus Torvalds    2005-04-16  254  		 * Name will look like:	 vlan0005
^1da177e4c3f41 Linus Torvalds    2005-04-16  255  		 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  256  	default:
9bb8582efb5555 Patrick McHardy   2008-07-08  257  		snprintf(name, IFNAMSIZ, "vlan%.4i", vlan_id);
3ff50b7997fe06 Stephen Hemminger 2007-04-20  258  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  259  
c835a677331495 Tom Gundersen     2014-07-14  260  	new_dev = alloc_netdev(sizeof(struct vlan_dev_priv), name,
c835a677331495 Tom Gundersen     2014-07-14  261  			       NET_NAME_UNKNOWN, vlan_setup);
5dd8d1e9eb8b51 Arjan van de Ven  2006-07-03  262  
^1da177e4c3f41 Linus Torvalds    2005-04-16  263  	if (new_dev == NULL)
2ae0bf69b716d0 Patrick McHardy   2007-06-13  264  		return -ENOBUFS;
^1da177e4c3f41 Linus Torvalds    2005-04-16  265  
65d292a2ef2df6 Pavel Emelyanov   2008-04-16  266  	dev_net_set(new_dev, net);
^1da177e4c3f41 Linus Torvalds    2005-04-16  267  	/* need 4 bytes for extra VLAN header info,
^1da177e4c3f41 Linus Torvalds    2005-04-16  268  	 * hope the underlying device can handle it.
^1da177e4c3f41 Linus Torvalds    2005-04-16  269  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  270  	new_dev->mtu = real_dev->mtu;
^1da177e4c3f41 Linus Torvalds    2005-04-16  271  
0c0667a8548ef2 Wang Sheng-Hui    2013-08-03  272  	vlan = vlan_dev_priv(new_dev);
0c0667a8548ef2 Wang Sheng-Hui    2013-08-03  273  	vlan->vlan_proto = htons(ETH_P_8021Q);
0c0667a8548ef2 Wang Sheng-Hui    2013-08-03  274  	vlan->vlan_id = vlan_id;
0c0667a8548ef2 Wang Sheng-Hui    2013-08-03  275  	vlan->real_dev = real_dev;
0c0667a8548ef2 Wang Sheng-Hui    2013-08-03  276  	vlan->dent = NULL;
0c0667a8548ef2 Wang Sheng-Hui    2013-08-03  277  	vlan->flags = VLAN_FLAG_REORDER_HDR;
^1da177e4c3f41 Linus Torvalds    2005-04-16  278  
07b5b17e157b70 Patrick McHardy   2007-06-13  279  	new_dev->rtnl_link_ops = &vlan_link_ops;
42ab19ee902929 David Ahern       2017-10-04  280  	err = register_vlan_dev(new_dev, NULL);
2ae0bf69b716d0 Patrick McHardy   2007-06-13  281  	if (err < 0)
42429aaee5eb44 Patrick McHardy   2007-06-13  282  		goto out_free_newdev;
^1da177e4c3f41 Linus Torvalds    2005-04-16  283  
2ae0bf69b716d0 Patrick McHardy   2007-06-13  284  	return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  285  
^1da177e4c3f41 Linus Torvalds    2005-04-16  286  out_free_newdev:
^1da177e4c3f41 Linus Torvalds    2005-04-16  287  	free_netdev(new_dev);
2ae0bf69b716d0 Patrick McHardy   2007-06-13  288  	return err;
^1da177e4c3f41 Linus Torvalds    2005-04-16  289  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  290  

:::::: The code at line 238 was first introduced by commit
:::::: 9bb8582efb555521c7eec595ebd34e835ddc34b8 vlan: TCI related type and naming cleanups

:::::: TO: Patrick McHardy <kaber@...sh.net>
:::::: CC: David S. Miller <davem@...emloft.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ