[BRIDGE] ebtables: fix allocation in net/bridge/netfilter/ebtables.c
authorJayachandran C <c.jayachandran@gmail.com>
Wed, 12 Apr 2006 00:25:38 +0000 (17:25 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Apr 2006 00:25:38 +0000 (17:25 -0700)
Allocate an array of 'struct ebt_chainstack *', the current code allocates
array of 'struct ebt_chainstack'.

akpm: converted to use the

foo = alloc(sizeof(*foo))

form.  Which would have prevented this from happening in the first place.

akpm: also removed unneeded typecast.

akpm: what on earth is this code doing anyway?  cpu_possible_map can be
sparse..

Signed-off-by: Jayachandran C. <c.jayachandran@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/netfilter/ebtables.c

index 66bd932..84b9af7 100644 (file)
@@ -824,9 +824,9 @@ static int translate_table(struct ebt_replace *repl,
        if (udc_cnt) {
                /* this will get free'd in do_replace()/ebt_register_table()
                   if an error occurs */
-               newinfo->chainstack = (struct ebt_chainstack **)
-                  vmalloc((highest_possible_processor_id()+1) 
-                                               * sizeof(struct ebt_chainstack));
+               newinfo->chainstack =
+                       vmalloc((highest_possible_processor_id()+1)
+                                       * sizeof(*(newinfo->chainstack)));
                if (!newinfo->chainstack)
                        return -ENOMEM;
                for_each_possible_cpu(i) {