Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37be9b71 authored by tannerlove's avatar tannerlove Committed by Greg Kroah-Hartman
Browse files

selftests/net: in timestamping, strncpy needs to preserve null byte



[ Upstream commit 8027bc0307ce59759b90679fa5d8b22949586d20 ]

If user passed an interface option longer than 15 characters, then
device.ifr_name and hwtstamp.ifr_name became non-null-terminated
strings. The compiler warned about this:

timestamping.c:353:2: warning: ‘strncpy’ specified bound 16 equals \
destination size [-Wstringop-truncation]
  353 |  strncpy(device.ifr_name, interface, sizeof(device.ifr_name));

Fixes: cb9eff09 ("net: new user space API for time stamping of incoming and outgoing packets")
Signed-off-by: default avatarTanner Love <tannerlove@google.com>
Acked-by: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent a9813282
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -313,10 +313,16 @@ int main(int argc, char **argv)
	int val;
	socklen_t len;
	struct timeval next;
	size_t if_len;

	if (argc < 2)
		usage(0);
	interface = argv[1];
	if_len = strlen(interface);
	if (if_len >= IFNAMSIZ) {
		printf("interface name exceeds IFNAMSIZ\n");
		exit(1);
	}

	for (i = 2; i < argc; i++) {
		if (!strcasecmp(argv[i], "SO_TIMESTAMP"))
@@ -350,12 +356,12 @@ int main(int argc, char **argv)
		bail("socket");

	memset(&device, 0, sizeof(device));
	strncpy(device.ifr_name, interface, sizeof(device.ifr_name));
	memcpy(device.ifr_name, interface, if_len + 1);
	if (ioctl(sock, SIOCGIFADDR, &device) < 0)
		bail("getting interface IP address");

	memset(&hwtstamp, 0, sizeof(hwtstamp));
	strncpy(hwtstamp.ifr_name, interface, sizeof(hwtstamp.ifr_name));
	memcpy(hwtstamp.ifr_name, interface, if_len + 1);
	hwtstamp.ifr_data = (void *)&hwconfig;
	memset(&hwconfig, 0, sizeof(hwconfig));
	hwconfig.tx_type =