diff options
author | Jakub Kicinski <kuba@kernel.org> | 2024-10-03 10:05:55 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-10-10 13:13:33 -0700 |
commit | 9c0fc36ec493d20599cf088d21b6bddcdc184242 (patch) | |
tree | 79d8fb91469d59cc1dd0a55477778f0a1167de8f /net/socket.c | |
parent | cd959bf7c3bbaf64a29750c5e36776078a18a8fe (diff) | |
parent | 1d227fcc72223cbdd34d0ce13541cbaab5e0d72f (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR (net-6.12-rc3).
No conflicts and no adjacent changes.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/socket.c b/net/socket.c index 3b1b65b9f471..24b404299015 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1574,8 +1574,13 @@ int __sock_create(struct net *net, int family, int type, int protocol, rcu_read_unlock(); err = pf->create(net, sock, protocol, kern); - if (err < 0) + if (err < 0) { + /* ->create should release the allocated sock->sk object on error + * but it may leave the dangling pointer + */ + sock->sk = NULL; goto out_module_put; + } /* * Now to bump the refcnt of the [loadable] module that owns this |