net: sk_prot_alloc() should not blindly overwrite memory
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 8 Jul 2009 19:36:05 +0000 (19:36 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 12 Jul 2009 03:26:19 +0000 (20:26 -0700)
commite912b1142be8f1e2c71c71001dc992c6e5eb2ec1
tree9812c7d3e5431852d25bc15860830413ff15dc51
parente594e96e8a14101a6decabf6746bd5186287debc
net: sk_prot_alloc() should not blindly overwrite memory

Some sockets use SLAB_DESTROY_BY_RCU, and our RCU code correctness
depends on sk->sk_nulls_node.next being always valid. A NULL
value is not allowed as it might fault a lockless reader.

Current sk_prot_alloc() implementation doesnt respect this hypothesis,
calling kmem_cache_alloc() with __GFP_ZERO. Just call memset() around
the forbidden field.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sock.c