s390/dasd,zfcp: fix gcc 8 stringop-truncation warnings
authorVasily Gorbik <gor@linux.ibm.com>
Sun, 17 Jun 2018 09:56:17 +0000 (11:56 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 2 Jul 2018 09:24:52 +0000 (11:24 +0200)
ccw "busid" should always be NUL-terminated, as evident from e.g.
get_ccwdev_by_busid doing "return (strcmp(bus_id, dev_name(dev)) == 0)".

Replace all strncpy initializing busid with strlcpy. This fixes the
following gcc 8 warnings:

drivers/s390/scsi/zfcp_aux.c:104:2: warning: 'strncpy' specified bound 20
equals destination size [-Wstringop-truncation]
  strncpy(busid, token, ZFCP_BUS_ID_SIZE);

drivers/s390/block/dasd_eer.c:316:2: warning: 'strncpy' specified bound 10
equals destination size [-Wstringop-truncation]
  strncpy(header.busid, dev_name(&device->cdev->dev), DASD_EER_BUSID_SIZE);

drivers/s390/block/dasd_eer.c:359:2: warning: 'strncpy' specified bound 10
equals destination size [-Wstringop-truncation]
  strncpy(header.busid, dev_name(&device->cdev->dev), DASD_EER_BUSID_SIZE);

drivers/s390/block/dasd_devmap.c:429:3: warning: 'strncpy' specified bound
20 equals destination size [-Wstringop-truncation]
   strncpy(new->bus_id, bus_id, DASD_BUS_ID_SIZE);

Acked-by: Stefan Haberland <sth@linux.ibm.com>
Acked-by: Steffen Maier <maier@linux.ibm.com>
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd_devmap.c
drivers/s390/block/dasd_eer.c
drivers/s390/scsi/zfcp_aux.c

index b9ebb565ee2c70aa4672d539a4ac2d2236dc7fa8..fab35c6170cc81ab067b7573ae501e6781dcf292 100644 (file)
@@ -426,7 +426,7 @@ dasd_add_busid(const char *bus_id, int features)
        if (!devmap) {
                /* This bus_id is new. */
                new->devindex = dasd_max_devindex++;
-               strncpy(new->bus_id, bus_id, DASD_BUS_ID_SIZE);
+               strlcpy(new->bus_id, bus_id, DASD_BUS_ID_SIZE);
                new->features = features;
                new->device = NULL;
                list_add(&new->list, &dasd_hashlists[hash]);
index 6ef8714dc6935047ec0f48d8cc3f6e34dd77c19c..93bb09da7fdc4e6a2372a0d871826252498019fe 100644 (file)
@@ -313,7 +313,7 @@ static void dasd_eer_write_standard_trigger(struct dasd_device *device,
        ktime_get_real_ts64(&ts);
        header.tv_sec = ts.tv_sec;
        header.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
-       strncpy(header.busid, dev_name(&device->cdev->dev),
+       strlcpy(header.busid, dev_name(&device->cdev->dev),
                DASD_EER_BUSID_SIZE);
 
        spin_lock_irqsave(&bufferlock, flags);
@@ -356,7 +356,7 @@ static void dasd_eer_write_snss_trigger(struct dasd_device *device,
        ktime_get_real_ts64(&ts);
        header.tv_sec = ts.tv_sec;
        header.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
-       strncpy(header.busid, dev_name(&device->cdev->dev),
+       strlcpy(header.busid, dev_name(&device->cdev->dev),
                DASD_EER_BUSID_SIZE);
 
        spin_lock_irqsave(&bufferlock, flags);
index a3a8c8d9d7171a8d6994548212084ff3380ba493..94f4d8fe85e0e5bc595470d8d0e161ab664ae735 100644 (file)
@@ -101,7 +101,7 @@ static void __init zfcp_init_device_setup(char *devstr)
        token = strsep(&str, ",");
        if (!token || strlen(token) >= ZFCP_BUS_ID_SIZE)
                goto err_out;
-       strncpy(busid, token, ZFCP_BUS_ID_SIZE);
+       strlcpy(busid, token, ZFCP_BUS_ID_SIZE);
 
        token = strsep(&str, ",");
        if (!token || kstrtoull(token, 0, (unsigned long long *) &wwpn))