On Tue, 2018-07-24 at 11:04 -0600, Shuah Khan wrote: > On 07/20/2018 08:12 PM, Ben Hutchings wrote: > > gcc 8 reports: > > > > usbip_device_driver.c: In function ‘read_usb_vudc_device’: > > usbip_device_driver.c:106:2: error: ‘strncpy’ specified bound 256 equals destination size [-Werror=stringop-truncation] > > strncpy(dev->path, path, SYSFS_PATH_MAX); > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > usbip_device_driver.c:125:2: error: ‘strncpy’ specified bound 32 equals destination size [-Werror=stringop-truncation] > > strncpy(dev->busid, name, SYSFS_BUS_ID_SIZE); > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > I'm not convinced it makes sense to truncate the copied strings here, > > but since we're already doing so let's ensure they're still null- > > terminated. We can't easily use strlcpy() here, so use snprintf(). > > > > usbip_common.c has the same problem. > > > > Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> > > Cc: stable@xxxxxxxxxxxxxxx > > --- > > tools/usb/usbip/libsrc/usbip_common.c | 4 ++-- > > tools/usb/usbip/libsrc/usbip_device_driver.c | 4 ++-- > > 2 files changed, 4 insertions(+), 4 deletions(-) > > > > --- a/tools/usb/usbip/libsrc/usbip_common.c > > +++ b/tools/usb/usbip/libsrc/usbip_common.c > > @@ -226,8 +226,8 @@ int read_usb_device(struct udev_device * > > path = udev_device_get_syspath(sdev); > > name = udev_device_get_sysname(sdev); > > > > - strncpy(udev->path, path, SYSFS_PATH_MAX); > > - strncpy(udev->busid, name, SYSFS_BUS_ID_SIZE); > > + snprintf(udev->path, SYSFS_PATH_MAX, "%s", path); > > + snprintf(udev->busid, SYSFS_BUS_ID_SIZE, "%s", name); > > I am okay with the change to use snprintf(). Please add check for > return to avoid GCC 7 -Wformat-overflow wanrs on snprintf instances > that don't check return. [...] I've tried running: ./autogen.sh CC=gcc-7 CFLAGS=-Wformat-overflow ./configure make but this didn't produce any warnings. How did you get the warning? Ben. -- Ben Hutchings Tomorrow will be cancelled due to lack of interest.
Attachment:
signature.asc
Description: This is a digitally signed message part