socket: Print pf->create() when it does not clear sock->sk on failure.
authorKuniyuki Iwashima <kuniyu@amazon.com>
Thu, 24 Oct 2024 20:14:58 +0000 (13:14 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 29 Oct 2024 23:31:23 +0000 (16:31 -0700)
commit4bbd360a5084d8f890f814327e1d9fbb1f0f6fa1
tree60665c3a8969efc0da533d85c37ab3a504032166
parentf75d1fbe7809bc5ed134204b920fd9e2fc5db1df
socket: Print pf->create() when it does not clear sock->sk on failure.

I suggested to put DEBUG_NET_WARN_ON_ONCE() in __sock_create() to
catch possible use-after-free.

But the warning itself was not useful because our interest is in
the callee than the caller.

Let's define DEBUG_NET_WARN_ONCE() and print the name of pf->create()
and the socket identifier.

While at it, we enclose DEBUG_NET_WARN_ON_ONCE() in parentheses too
to avoid a checkpatch error.

Note that %pf or %pF were obsoleted and will be removed later as per
comment in lib/vsprintf.c.

Link: https://lore.kernel.org/netdev/202410231427.633734b3-lkp@intel.com/
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241024201458.49412-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/net_debug.h
net/socket.c