From 89e3c36b066d7fe9bd90a4740cc7aa4d859f0dda Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 29 Mar 2018 08:40:26 -0700 Subject: [PATCH] namespace: limit the length of namespace name to avoid snprintf overflow This fixes problem reported by gcc-8 Signed-off-by: Stephen Hemminger --- lib/namespace.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/namespace.c b/lib/namespace.c index 6f3356d0..43e0fe34 100644 --- a/lib/namespace.c +++ b/lib/namespace.c @@ -17,12 +17,15 @@ static void bind_etc(const char *name) { - char etc_netns_path[PATH_MAX]; + char etc_netns_path[sizeof(NETNS_ETC_DIR) + NAME_MAX]; char netns_name[PATH_MAX]; char etc_name[PATH_MAX]; struct dirent *entry; DIR *dir; + if (strlen(name) >= NAME_MAX) + return; + snprintf(etc_netns_path, sizeof(etc_netns_path), "%s/%s", NETNS_ETC_DIR, name); dir = opendir(etc_netns_path); if (!dir)