discover/network: Null terminate ifname buffer explicitly
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>
Wed, 30 May 2018 05:37:05 +0000 (15:37 +1000)
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>
Tue, 12 Jun 2018 03:03:59 +0000 (13:03 +1000)
commit32952937bc5c3753ff2f8f4612da5ba51bf69759
treeb483f94a243422fad9bcad0da2dd27104c48d46e
parente54e26065cea435fed19b8b2687c87927f1b63f1
discover/network: Null terminate ifname buffer explicitly

GCC 8 produces the following warning for network.c:

In function ‘network_handle_nlmsg’,
    inlined from ‘network_netlink_process’ at ../discover/network.c:726:3:
../discover/network.c:568:3: warning: ‘strncpy’ output may be truncated copying 15 bytes from a string of length 16 [-Wstringop-truncation]
   strncpy(interface->name, ifname, sizeof(interface->name) - 1);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../discover/network.c:586:3: warning: ‘strncpy’ output may be truncated copying 15 bytes from a string of length 16 [-Wstringop-truncation]
   strncpy(interface->name, ifname, sizeof(interface->name) - 1);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The code is safe since interface is allocated with talloc_zero() and we
could use -Wno-stringop-truncation to hide this but since this is the
only offender instead just copy the whole IFNAMSIZ bytes and explicitly
terminate the ifname buffer to be safe.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
discover/network.c