From e15f8c3ea0aaf39224d8705f0b1c2a3ddde5dda0 Mon Sep 17 00:00:00 2001 From: yangyanjun Date: Thu, 25 Apr 2024 10:55:01 +0800 Subject: [PATCH] tcp lowpower protocol server use reqsock to sock bug fix Signed-off-by: yangyanjun --- net/core/lowpower_protocol.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/net/core/lowpower_protocol.c b/net/core/lowpower_protocol.c index a428f233e8db..96f0e8e92b20 100644 --- a/net/core/lowpower_protocol.c +++ b/net/core/lowpower_protocol.c @@ -64,11 +64,16 @@ static bool foreground_uid_match(struct net *net, struct sock *sk) { uid_t kuid; uid_t foreground_uid; + struct sock *fullsk; - if (!sk) + if (!net || !sk) + return false; + + fullsk = sk_to_full_sk(sk); + if (!fullsk || !sk_fullsock(fullsk)) return false; - kuid = sock_net_uid(net, sk).val; + kuid = sock_net_uid(net, fullsk).val; foreground_uid = foreground_uid_atomic_read(); if (kuid != foreground_uid) return false; @@ -98,7 +103,7 @@ bool netfilter_bypass_enable(struct net *net, struct sk_buff *skb, int (*fun)(struct net *, struct sock *, struct sk_buff *), int *ret) { - if (!net || !skb || ip_hdr(skb)->protocol != IPPROTO_TCP) + if (!net || !skb || !ip_hdr(skb) || ip_hdr(skb)->protocol != IPPROTO_TCP) return false; if (foreground_uid_match(net, skb->sk)) { -- Gitee