diff options
| -rw-r--r-- | net/netfilter/nf_conntrack_extend.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c index 7dcf7a404190..8d9e4c949b96 100644 --- a/net/netfilter/nf_conntrack_extend.c +++ b/net/netfilter/nf_conntrack_extend.c | |||
| @@ -48,15 +48,17 @@ nf_ct_ext_create(struct nf_ct_ext **ext, enum nf_ct_ext_id id, gfp_t gfp) | |||
| 48 | { | 48 | { |
| 49 | unsigned int off, len; | 49 | unsigned int off, len; |
| 50 | struct nf_ct_ext_type *t; | 50 | struct nf_ct_ext_type *t; |
| 51 | size_t alloc_size; | ||
| 51 | 52 | ||
| 52 | rcu_read_lock(); | 53 | rcu_read_lock(); |
| 53 | t = rcu_dereference(nf_ct_ext_types[id]); | 54 | t = rcu_dereference(nf_ct_ext_types[id]); |
| 54 | BUG_ON(t == NULL); | 55 | BUG_ON(t == NULL); |
| 55 | off = ALIGN(sizeof(struct nf_ct_ext), t->align); | 56 | off = ALIGN(sizeof(struct nf_ct_ext), t->align); |
| 56 | len = off + t->len; | 57 | len = off + t->len; |
| 58 | alloc_size = t->alloc_size; | ||
| 57 | rcu_read_unlock(); | 59 | rcu_read_unlock(); |
| 58 | 60 | ||
| 59 | *ext = kzalloc(t->alloc_size, gfp); | 61 | *ext = kzalloc(alloc_size, gfp); |
| 60 | if (!*ext) | 62 | if (!*ext) |
| 61 | return NULL; | 63 | return NULL; |
| 62 | 64 | ||
