GCC 8.2 gives this warning: virtio/net.c: In function ‘virtio_net__tap_init’: virtio/net.c:336:47: error: argument to ‘sizeof’ in ‘strncpy’ call is the same expression as the source; did you mean to use the size of the destination? [-Werror=sizeof-pointer-memaccess] strncpy(ifr.ifr_name, ndev->tap_name, sizeof(ndev->tap_name)); ^ virtio/net.c:348:47: error: argument to ‘sizeof’ in ‘strncpy’ call is the same expression as the source; did you mean to use the size of the destination? [-Werror=sizeof-pointer-memaccess] strncpy(ifr.ifr_name, ndev->tap_name, sizeof(ndev->tap_name)); ^ Fix it by using sizeof of destination instead, even if they're the same size in this case. Signed-off-by: Anisse Astier <aastier@xxxxxxxxxx> --- virtio/net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtio/net.c b/virtio/net.c index f95258c..80c1d81 100644 --- a/virtio/net.c +++ b/virtio/net.c @@ -333,7 +333,7 @@ static bool virtio_net__tap_init(struct net_dev *ndev) goto fail; } else if (!skipconf) { memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, ndev->tap_name, sizeof(ndev->tap_name)); + strncpy(ifr.ifr_name, ndev->tap_name, sizeof(ifr.ifr_name)); sin.sin_addr.s_addr = inet_addr(params->host_ip); memcpy(&(ifr.ifr_addr), &sin, sizeof(ifr.ifr_addr)); ifr.ifr_addr.sa_family = AF_INET; @@ -345,7 +345,7 @@ static bool virtio_net__tap_init(struct net_dev *ndev) if (!skipconf) { memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, ndev->tap_name, sizeof(ndev->tap_name)); + strncpy(ifr.ifr_name, ndev->tap_name, sizeof(ifr.ifr_name)); ioctl(sock, SIOCGIFFLAGS, &ifr); ifr.ifr_flags |= IFF_UP | IFF_RUNNING; if (ioctl(sock, SIOCSIFFLAGS, &ifr) < 0) -- 2.19.1