]> err.no Git - linux-2.6/commitdiff
netfilter: nf_conntrack_extend: use krealloc() in nf_conntrack_extend.c V2
authorPekka Enberg <penberg@cs.helsinki.fi>
Mon, 9 Jun 2008 22:58:39 +0000 (15:58 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Jun 2008 22:58:39 +0000 (15:58 -0700)
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>
net/netfilter/nf_conntrack_extend.c

index bcc19fa4ed1e07ab4277f7c02c933235cd0dc261..ba1c4915e9eba571a0349ebee872d1a81edfd563 100644 (file)
@@ -88,13 +88,11 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
        newlen = newoff + t->len;
        rcu_read_unlock();
 
-       if (newlen >= ksize(ct->ext)) {
-               new = kmalloc(newlen, gfp);
-               if (!new)
-                       return NULL;
-
-               memcpy(new, ct->ext, ct->ext->len);
+       new = krealloc(ct->ext, newlen, gfp);
+       if (!new)
+               return NULL;
 
+       if (new != ct->ext) {
                for (i = 0; i < NF_CT_EXT_NUM; i++) {
                        if (!nf_ct_ext_exist(ct, i))
                                continue;