Message ID | 20240825191638.146748-1-xiyou.wangcong@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | defd8b3c37b0f9cb3e0f60f47d3d78d459d57fda |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] gtp: fix a potential NULL pointer dereference | expand |
On Sun, Aug 25, 2024 at 12:16:38PM -0700, Cong Wang wrote: > From: Cong Wang <cong.wang@bytedance.com> > > When sockfd_lookup() fails, gtp_encap_enable_socket() returns a > NULL pointer, but its callers only check for error pointers thus miss > the NULL pointer case. > > Fix it by returning an error pointer with the error code carried from > sockfd_lookup(). > > (I found this bug during code inspection.) > > Fixes: 1e3a3abd8b28 ("gtp: make GTP sockets in gtp_newlink optional") > Cc: Andreas Schultz <aschultz@tpip.net> > Cc: Pablo Neira Ayuso <pablo@netfilter.org> > Cc: Harald Welte <laforge@gnumonks.org> > Signed-off-by: Cong Wang <cong.wang@bytedance.com> Thanks Cong, I agree with your analysis. Reviewed-by: Simon Horman <horms@kernel.org>
On Sun, Aug 25, 2024 at 12:16:38PM -0700, Cong Wang wrote: > From: Cong Wang <cong.wang@bytedance.com> > > When sockfd_lookup() fails, gtp_encap_enable_socket() returns a > NULL pointer, but its callers only check for error pointers thus miss > the NULL pointer case. > > Fix it by returning an error pointer with the error code carried from > sockfd_lookup(). > > (I found this bug during code inspection.) > > Fixes: 1e3a3abd8b28 ("gtp: make GTP sockets in gtp_newlink optional") > Cc: Andreas Schultz <aschultz@tpip.net> > Cc: Pablo Neira Ayuso <pablo@netfilter.org> > Cc: Harald Welte <laforge@gnumonks.org> > Signed-off-by: Cong Wang <cong.wang@bytedance.com> Reviewed-by: Pablo Neira Ayuso <pablo@netfilter.org> Thanks.
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Sun, 25 Aug 2024 12:16:38 -0700 you wrote: > From: Cong Wang <cong.wang@bytedance.com> > > When sockfd_lookup() fails, gtp_encap_enable_socket() returns a > NULL pointer, but its callers only check for error pointers thus miss > the NULL pointer case. > > Fix it by returning an error pointer with the error code carried from > sockfd_lookup(). > > [...] Here is the summary with links: - [net] gtp: fix a potential NULL pointer dereference https://git.kernel.org/netdev/net/c/defd8b3c37b0 You are awesome, thank you!
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 0696faf60013..2e94d10348cc 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -1653,7 +1653,7 @@ static struct sock *gtp_encap_enable_socket(int fd, int type, sock = sockfd_lookup(fd, &err); if (!sock) { pr_debug("gtp socket fd=%d not found\n", fd); - return NULL; + return ERR_PTR(err); } sk = sock->sk;