From: Felix Abecassis Date: Wed, 22 Nov 2017 06:27:19 +0000 (-0800) Subject: confile_utils: fix overlapping strncpy X-Git-Tag: lxc-3.0.0.beta1~178^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F1935%2Fhead;p=thirdparty%2Flxc.git confile_utils: fix overlapping strncpy In the case of "lxc.net.0.type", the pointers passed to strncpy were only 2 elements apart, resulting in undefined behavior. Signed-off-by: Felix Abecassis --- diff --git a/src/lxc/confile_utils.c b/src/lxc/confile_utils.c index d86a2d88e..50f42ef8c 100644 --- a/src/lxc/confile_utils.c +++ b/src/lxc/confile_utils.c @@ -567,7 +567,8 @@ bool lxc_config_net_hwaddr(const char *line) return false; } /* strlen("hwaddr") = 6 */ - strncpy(copy + 8, p + 1, 6); + if (strlen(p + 1) >= 6) + memmove(copy + 8, p + 1, 6); copy[8 + 6] = '\0'; } if (strncmp(copy, "lxc.net.hwaddr", 14) == 0) { @@ -591,7 +592,8 @@ bool lxc_config_net_hwaddr(const char *line) return false; } /* strlen("hwaddr") = 6 */ - strncpy(copy + 12, p + 1, 6); + if (strlen(p + 1) >= 6) + memmove(copy + 12, p + 1, 6); copy[12 + 6] = '\0'; } if (strncmp(copy, "lxc.network.hwaddr", 18) == 0) {