netfilter:ipset: Fix memory allocation for bitmap:port
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Fri, 18 Oct 2013 12:03:41 +0000 (14:03 +0200)
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Sun, 27 Oct 2013 18:24:39 +0000 (19:24 +0100)
At the restructuring of the bitmap types creation in ipset, for the
bitmap:port type wrong (too large) memory allocation was copied
(netfilter bugzilla id #859).

Reported-by: Quentin Armitage <quentin@armitage.org.uk>
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
net/netfilter/ipset/ip_set_bitmap_port.c

index e7603c5b53d737b9de6248bfd0b87d0005c242fd..cf99676e69f81bdc326b2a187dc8de1450b23e87 100644 (file)
@@ -254,7 +254,7 @@ bitmap_port_create(struct net *net, struct ip_set *set, struct nlattr *tb[],
                return -ENOMEM;
 
        map->elements = last_port - first_port + 1;
-       map->memsize = map->elements * sizeof(unsigned long);
+       map->memsize = bitmap_bytes(0, map->elements);
        set->variant = &bitmap_port;
        set->dsize = ip_set_elem_len(set, tb, 0);
        if (!init_map_port(set, map, first_port, last_port)) {