Save some space by using variable size for nsid cache elements.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
struct hlist_node nsid_hash;
struct hlist_node name_hash;
int nsid;
- char name[NAME_MAX];
+ char name[0];
};
#define NSIDMAP_SIZE 128
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;
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;