net: Trap attempts to call sock_kfree_s() with a NULL pointer.

Unlike normal kfree() it is never right to call sock_kfree_s() with
a NULL pointer, because sock_kfree_s() also has the side effect of
discharging the memory from the sockets quota.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2014-10-14 17:02:37 -04:00
parent dee49f203a
commit e53da5fbfc

View File

@ -1718,6 +1718,8 @@ EXPORT_SYMBOL(sock_kmalloc);
*/ */
void sock_kfree_s(struct sock *sk, void *mem, int size) void sock_kfree_s(struct sock *sk, void *mem, int size)
{ {
if (WARN_ON_ONCE(!mem))
return;
kfree(mem); kfree(mem);
atomic_sub(size, &sk->sk_omem_alloc); atomic_sub(size, &sk->sk_omem_alloc);
} }