aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2008-06-09 18:58:39 -0400
committerDavid S. Miller <davem@davemloft.net>2008-06-09 18:58:39 -0400
commit31d8519c9cf87e9d8a0cc5b9734fda02af66d7e2 (patch)
tree516d5000b2c4877d611e4eb4da886f8a836307df /net/netfilter
parent17e6e59f0a1d7188d783c15dc3ccebd95a0840cd (diff)
netfilter: nf_conntrack_extend: use krealloc() in nf_conntrack_extend.c V2
The ksize() API is going away because it is being abused and it doesn't even work consistenly across different allocators. Therefore, convert net/netfilter/nf_conntrack_extend.c to use krealloc(). Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netfilter')
-rw-r--r--net/netfilter/nf_conntrack_extend.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
index bcc19fa4ed1e..ba1c4915e9eb 100644
--- a/net/netfilter/nf_conntrack_extend.c
+++ b/net/netfilter/nf_conntrack_extend.c
@@ -88,13 +88,11 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
88 newlen = newoff + t->len; 88 newlen = newoff + t->len;
89 rcu_read_unlock(); 89 rcu_read_unlock();
90 90
91 if (newlen >= ksize(ct->ext)) { 91 new = krealloc(ct->ext, newlen, gfp);
92 new = kmalloc(newlen, gfp); 92 if (!new)
93 if (!new) 93 return NULL;
94 return NULL;
95
96 memcpy(new, ct->ext, ct->ext->len);
97 94
95 if (new != ct->ext) {
98 for (i = 0; i < NF_CT_EXT_NUM; i++) { 96 for (i = 0; i < NF_CT_EXT_NUM; i++) {
99 if (!nf_ct_ext_exist(ct, i)) 97 if (!nf_ct_ext_exist(ct, i))
100 continue; 98 continue;