net: driver: hamradio: Fix potential unterminated string
authorAndrew Lunn <andrew@lunn.ch>
Sat, 31 Oct 2020 18:17:00 +0000 (19:17 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 3 Nov 2020 00:10:24 +0000 (16:10 -0800)
With W=1 the following error is reported:

In function ‘strncpy’,
    inlined from ‘hdlcdrv_ioctl’ at drivers/net/hamradio/hdlcdrv.c:600:4:
./include/linux/string.h:297:30: warning: ‘__builtin_strncpy’ specified bound 32 equals destination size [-Wstringop-truncation]
  297 | #define __underlying_strncpy __builtin_strncpy
      |                              ^
./include/linux/string.h:307:9: note: in expansion of macro ‘__underlying_strncpy’
  307 |  return __underlying_strncpy(p, q, size);

Replace strncpy with strlcpy to guarantee the string is terminated.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20201031181700.1081693-1-andrew@lunn.ch
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/hamradio/hdlcdrv.c

index e7413a6..9e00581 100644 (file)
@@ -597,7 +597,7 @@ static int hdlcdrv_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 
        case HDLCDRVCTL_DRIVERNAME:
                if (s->ops && s->ops->drvname) {
-                       strncpy(bi.data.drivername, s->ops->drvname, 
+                       strlcpy(bi.data.drivername, s->ops->drvname,
                                sizeof(bi.data.drivername));
                        break;
                }