net: add sock_init_data_uid()
authorPietro Borrello <borrello@diag.uniroma1.it>
Sat, 4 Feb 2023 17:39:20 +0000 (17:39 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:39:15 +0000 (09:39 +0100)
commita8353cfb4eec259fe3b196d23b45ee9277de9d46
treede97ba295f361cb1fd44cbc2626f5317d1f42eb9
parent15a66714bf286f5d8b8e33e6abb6aa720a94b824
net: add sock_init_data_uid()

[ Upstream commit 584f3742890e966d2f0a1f3c418c9ead70b2d99e ]

Add sock_init_data_uid() to explicitly initialize the socket uid.
To initialise the socket uid, sock_init_data() assumes a the struct
socket* sock is always embedded in a struct socket_alloc, used to
access the corresponding inode uid. This may not be true.
Examples are sockets created in tun_chr_open() and tap_open().

Fixes: 86741ec25462 ("net: core: Add a UID field to struct sock.")
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/net/sock.h
net/core/sock.c