nspawn: fix truncation of machine names in interface names

Based on patch by Michael Marineau <michael.marineau@coreos.com>:

When deriving the network interface name from machine name strncpy was
not properly null terminating the string and the maximum string size as
returned by strlen() is actually IFNAMSIZ-1, not IFNAMSIZ.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-08-03 01:28:21 -04:00
parent 9a6f36c08f
commit 4212a3375e

View file

@ -1659,11 +1659,8 @@ static int setup_veth(pid_t pid, char iface_name[IFNAMSIZ], int *ifi) {
/* Use two different interface name prefixes depending whether
* we are in bridge mode or not. */
if (arg_network_bridge)
memcpy(iface_name, "vb-", 3);
else
memcpy(iface_name, "ve-", 3);
strncpy(iface_name+3, arg_machine, IFNAMSIZ - 3);
snprintf(iface_name, IFNAMSIZ, "%s-%s",
arg_network_bridge ? "vb" : "ve", arg_machine);
r = get_mac(&mac);
if (r < 0) {