From: Jayachandran C. 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. Cc: Cc: Patrick McHardy Cc: Stephen Hemminger Cc: "David S. Miller" Signed-off-by: Andrew Morton --- net/bridge/netfilter/ebtables.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN net/bridge/netfilter/ebtables.c~ebtables-fix-allocation-in-net-bridge-netfilter-ebtablesc net/bridge/netfilter/ebtables.c --- 25/net/bridge/netfilter/ebtables.c~ebtables-fix-allocation-in-net-bridge-netfilter-ebtablesc Mon Apr 3 16:55:06 2006 +++ 25-akpm/net/bridge/netfilter/ebtables.c Mon Apr 3 16:55:06 2006 @@ -824,9 +824,9 @@ static int translate_table(struct ebt_re 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_cpu(i) { _