ipnetns: make net namespace cache variable size

Save some space by using variable size for nsid cache elements.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
diff --git a/ip/ipnetns.c b/ip/ipnetns.c
index 3b704a4..088096f 100644
--- a/ip/ipnetns.c
+++ b/ip/ipnetns.c
@@ -139,7 +139,7 @@
 	struct hlist_node	nsid_hash;
 	struct hlist_node	name_hash;
 	int			nsid;
-	char			name[NAME_MAX];
+	char			name[0];
 };
 
 #define NSIDMAP_SIZE		128
@@ -164,7 +164,7 @@
 	return NULL;
 }
 
-static int netns_map_add(int nsid, char *name)
+static int netns_map_add(int nsid, const char *name)
 {
 	struct nsid_cache *c;
 	uint32_t h;
@@ -172,7 +172,7 @@
 	if (netns_map_get_by_nsid(nsid) != NULL)
 		return -EEXIST;
 
-	c = malloc(sizeof(*c));
+	c = malloc(sizeof(*c) + strlen(name));
 	if (c == NULL) {
 		perror("malloc");
 		return -ENOMEM;