net: net_assign_generic() fix
authorEric Dumazet <eric.dumazet@gmail.com>
Tue, 28 Jul 2009 02:36:15 +0000 (02:36 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Sep 2009 17:37:21 +0000 (10:37 -0700)
[ Upstream commit 144586301f6af5ae5943a002f030d8c626fa4fdd ]

memcpy() should take into account size of pointers,
not only number of pointers to copy.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/core/net_namespace.c

index 7c52fe2..656f6fb 100644 (file)
@@ -446,7 +446,7 @@ int net_assign_generic(struct net *net, int id, void *data)
 
        ng->len = id;
        INIT_RCU_HEAD(&ng->rcu);
-       memcpy(&ng->ptr, &old_ng->ptr, old_ng->len);
+       memcpy(&ng->ptr, &old_ng->ptr, old_ng->len * sizeof(void*));
 
        rcu_assign_pointer(net->gen, ng);
        call_rcu(&old_ng->rcu, net_generic_release);