| From a76437ff1a8cd2d155baeda4e548c81e0315b541 Mon Sep 17 00:00:00 2001 |
| From: Eric Dumazet <eric.dumazet@gmail.com> |
| Date: Tue, 28 Jul 2009 02:36:15 +0000 |
| Subject: net: net_assign_generic() fix |
| |
| From: Eric Dumazet <eric.dumazet@gmail.com> |
| |
| [ 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 | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/core/net_namespace.c |
| +++ b/net/core/net_namespace.c |
| @@ -498,7 +498,7 @@ int net_assign_generic(struct net *net, |
| */ |
| |
| ng->len = id; |
| - 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); |