ipv4: add a sock pointer to ip_queue_xmit()
ip_queue_xmit() assumes the skb it has to transmit is attached to an inet socket. Commit 31c70d59 ("l2tp: keep original skb ownership") changed l2tp to not change skb ownership and thus broke this assumption. One fix is to add a new 'struct sock *sk' parameter to ip_queue_xmit(), so that we do not assume skb->sk points to the socket used by l2tp tunnel. Fixes: 31c70d59 ("l2tp: keep original skb ownership") Reported-by:Zhan Jianyu <nasa4836@gmail.com> Tested-by:
Zhan Jianyu <nasa4836@gmail.com> Signed-off-by:
Eric Dumazet <edumazet@google.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- include/net/inet6_connection_sock.h 1 addition, 1 deletioninclude/net/inet6_connection_sock.h
- include/net/inet_connection_sock.h 1 addition, 1 deletioninclude/net/inet_connection_sock.h
- include/net/ip.h 1 addition, 1 deletioninclude/net/ip.h
- net/dccp/output.c 1 addition, 1 deletionnet/dccp/output.c
- net/ipv4/ip_output.c 3 additions, 2 deletionsnet/ipv4/ip_output.c
- net/ipv4/tcp_output.c 1 addition, 1 deletionnet/ipv4/tcp_output.c
- net/ipv6/inet6_connection_sock.c 1 addition, 2 deletionsnet/ipv6/inet6_connection_sock.c
- net/l2tp/l2tp_core.c 2 additions, 2 deletionsnet/l2tp/l2tp_core.c
- net/l2tp/l2tp_ip.c 1 addition, 1 deletionnet/l2tp/l2tp_ip.c
- net/sctp/protocol.c 1 addition, 1 deletionnet/sctp/protocol.c
Please register or sign in to comment