On Sun, 2017-06-18 at 22:05 -0700, Govindarajulu Varadarajan wrote: > With -Wformat-truncation=, gcc throws the following warning. Instead of > using snprintf, use kasprintf and allocate string size as needed. > > drivers/net/ethernet/cisco/enic/enic_main.c: In function ‘enic_open’: > drivers/net/ethernet/cisco/enic/enic_main.c:1740:15: warning: ‘%u’ directive > output may be truncated writing between 1 and 2 bytes into a region of size > between 1 and 12 [-Wformat-truncation=] > "%.11s-rx-%u", netdev->name, i); > ^~ > drivers/net/ethernet/cisco/enic/enic_main.c:1740:5: note: directive argument > in the range [0, 16] > "%.11s-rx-%u", netdev->name, i); > ^~~~~~~~~~~~~ > drivers/net/ethernet/cisco/enic/enic_main.c:1738:4: note: ‘snprintf’ output > between 6 and 18 bytes into a destination of size 16 > snprintf(enic->msix[intr].devname, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > sizeof(enic->msix[intr].devname), > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > "%.11s-rx-%u", netdev->name, i); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/net/ethernet/cisco/enic/enic_main.c:1751:5: warning: ‘snprintf’ > output may be truncated before the last format character > [-Wformat-truncation=] > "%.11s-tx-%u", netdev->name, i);
Perhaps it'd be better to use a style with a variable length format precision ie: "%.*s-tx-%u", IFNAMSIZ - 4 - <something>, netdev-name, i)