From: Eric Dumazet Date: Mon, 5 Oct 2015 04:08:09 +0000 (-0700) Subject: ipv6: inet6_sk() should use sk_fullsock() X-Git-Tag: firefly_0821_release~3678^2~2 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=4582a29e6bb673e9344b7b0f5d6452ec110302ed;p=firefly-linux-kernel-4.4.55.git ipv6: inet6_sk() should use sk_fullsock() SYN_RECV & TIMEWAIT sockets are not full blown, they do not have a pinet6 pointer. Bug: 24163529 Change-Id: I6ce67a190d67d200c6ebeb81d2daeb9c86cd7581 Fixes: ca6fb0651883 ("tcp: attach SYNACK messages to request sockets instead of listener") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller Signed-off-by: Lorenzo Colitti (cherry picked from commit feee3c175c23ae72ed17154caaa82a3002de0023) --- diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index c4a36ab46cd5..5fabaa47574b 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h @@ -273,9 +273,9 @@ static inline struct inet6_timewait_sock *inet6_twsk(const struct sock *sk) } #if IS_ENABLED(CONFIG_IPV6) -static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk) +static inline struct ipv6_pinfo *inet6_sk(const struct sock *__sk) { - return inet_sk(__sk)->pinet6; + return sk_fullsock(__sk) ? inet_sk(__sk)->pinet6 : NULL; } static inline struct inet6_request_sock *