From 4582a29e6bb673e9344b7b0f5d6452ec110302ed Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Sun, 4 Oct 2015 21:08:09 -0700 Subject: [PATCH] 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) --- include/linux/ipv6.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 * -- 2.34.1