]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
ipnetns: make net namespace cache variable size
authorStephen Hemminger <shemming@brocade.com>
Wed, 12 Aug 2015 15:35:54 +0000 (08:35 -0700)
committerStephen Hemminger <shemming@brocade.com>
Wed, 12 Aug 2015 15:53:31 +0000 (08:53 -0700)
Save some space by using variable size for nsid cache elements.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
ip/ipnetns.c

index 3b704a454fad2d9059afd00b626976643b6aa55b..088096f646cb62980adeba1773359db6d73d6689 100644 (file)
@@ -139,7 +139,7 @@ struct nsid_cache {
        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 @@ static struct nsid_cache *netns_map_get_by_nsid(int nsid)
        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 @@ static int netns_map_add(int nsid, char *name)
        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;