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.
---
 src/nspawn/nspawn.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 7c47f6e..73eeed6 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -69,6 +69,7 @@
 #include "missing.h"
 #include "cgroup-util.h"
 #include "strv.h"
+#include "strxcpyx.h"
 #include "path-util.h"
 #include "loopback-setup.h"
 #include "dev-setup.h"
@@ -1663,7 +1664,7 @@ static int setup_veth(pid_t pid, char 
iface_name[IFNAMSIZ], int *ifi) {
                 memcpy(iface_name, "vb-", 3);
         else
                 memcpy(iface_name, "ve-", 3);
-        strncpy(iface_name+3, arg_machine, IFNAMSIZ - 3);
+        strscpy(iface_name+3, IFNAMSIZ - 4, arg_machine);
 
         r = get_mac(&mac);
         if (r < 0) {
-- 
1.8.5.5

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to