linux/net/ipv6
Willem de Bruijn 464f6f04bc net: test tailroom before appending to linear skb
commit 113f99c335 upstream.

Device features may change during transmission. In particular with
corking, a device may toggle scatter-gather in between allocating
and writing to an skb.

Do not unconditionally assume that !NETIF_F_SG at write time implies
that the same held at alloc time and thus the skb has sufficient
tailroom.

This issue predates git history.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Reported-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2018-10-21 08:46:13 +01:00
..
netfilter netfilter: ipv6: fix use-after-free Write in nf_nat_ipv6_manip_pkt 2018-06-16 22:22:24 +01:00
addrconf.c ipv6: fix sparse warning on rt6i_node 2017-11-11 13:33:32 +00:00
addrconf_core.c ipv6: remove rt6i_genid 2014-10-15 12:05:29 +02:00
addrlabel.c ipv6/addrlabel: fix ip6addrlbl_get() 2016-01-25 10:44:00 +00:00
af_inet6.c ipv6: move stub initialization after ipv6 setup completion 2017-07-18 18:40:39 +01:00
ah6.c ah6: Use the IPsec protocol multiplexer API 2014-03-14 07:28:07 +01:00
anycast.c ipv6: restore the behavior of ipv6_sock_ac_drop() 2014-10-15 12:05:28 +02:00
datagram.c ipv6/udp: use sticky pktinfo egress ifindex on connect() 2016-03-09 10:38:49 +00:00
esp6.c xfrm: Return error on unknown encap_type in init_state 2018-03-03 15:52:15 +00:00
exthdrs.c ipv6: Need to export ipv6_push_frag_opts for tunneling now. 2017-08-26 02:14:43 +01:00
exthdrs_core.c ipv6: re-enable fragment header matching in ipv6_find_hdr 2016-03-24 10:01:14 +00:00
exthdrs_offload.c ipv6: fix exthdrs offload registration in out_rt path 2015-09-30 13:20:50 +01:00
fib6_rules.c ipv6: Do not leak throw route references 2017-09-15 18:30:13 +01:00
icmp.c ipv6: fix endianness error in icmpv6_err 2016-08-22 22:38:15 +01:00
inet6_connection_sock.c ipv6: add complete rcu protection around np->opt 2015-12-18 16:06:24 +00:00
inet6_hashtables.c inet: convert inet_ehash_secret and ipv6_hash_secret to net_get_random_once 2013-10-19 19:45:35 -04:00
ip6_checksum.c udplite: fix partial checksum initialization 2018-06-16 22:22:18 +01:00
ip6_fib.c ipv6: fix typo in fib6_net_exit() 2017-11-26 13:50:36 +00:00
ip6_flowlabel.c ipv6: fix a lockdep splat 2016-02-25 10:51:01 +00:00
ip6_gre.c ip6_gre: better validate user provided tunnel names 2018-10-21 08:45:15 +01:00
ip6_icmp.c ipv6: Kill ipv6 dependency of icmpv6_send(). 2013-04-29 13:54:36 -04:00
ip6_input.c ipv6: Make MLD packets to only be processed locally 2015-08-10 17:10:15 +01:00
ip6_offload.c ipv6: Fix leak in ipv6_gso_segment(). 2017-09-15 18:29:56 +01:00
ip6_offload.h ipv6: Pull IPv6 GSO registration out of the module 2012-11-15 17:39:24 -05:00
ip6_output.c net: test tailroom before appending to linear skb 2018-10-21 08:46:13 +01:00
ip6_tunnel.c ip6_tunnel: better validate user provided tunnel names 2018-10-21 08:45:15 +01:00
ip6_vti.c vti6: better validate user provided tunnel names 2018-10-21 08:45:15 +01:00
ip6mr.c ipmr/ip6mr: Initialize the last assert time of mfc entries. 2017-03-16 02:27:17 +00:00
ipcomp6.c ipcomp6: Use the IPsec protocol multiplexer API 2014-03-14 07:28:07 +01:00
ipv6_sockglue.c netfilter: drop outermost socket lock in getsockopt() 2018-06-16 22:22:14 +01:00
Kconfig ip6_vti: Fix build when NET_IP_TUNNEL is not set. 2014-02-20 14:29:49 +01:00
Makefile xfrm6: Add IPsec protocol multiplexer 2014-03-14 07:28:07 +01:00
mcast.c igmp, mld: Fix memory leak in igmpv3/mld_del_delrec() 2017-03-16 02:27:26 +00:00
mip6.c ipv4/ipv6: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00
ndisc.c net: ipv6: send unsolicited NA on admin up 2017-08-26 02:14:33 +01:00
netfilter.c netfilter: Fix potential use after free in ip6_route_me_harder() 2014-05-09 02:36:39 +02:00
output_core.c ipv6: accept 64k - 1 packet length in ip6_find_1stfragopt() 2017-11-11 13:33:24 +00:00
ping.c net: ping: do not abuse udp_poll() 2017-09-15 18:29:56 +01:00
proc.c snmp: fix some left over of snmp stats 2014-05-14 15:33:47 -04:00
protocol.c net: remove outdated comment for ipv4 and ipv6 protocol handler 2013-11-28 18:47:51 -05:00
raw.c net: ping: do not abuse udp_poll() 2017-09-15 18:29:56 +01:00
reassembly.c ipv6: distinguish frag queues by device for multicast and link-local packets 2015-12-18 16:06:23 +00:00
route.c ipv6: add RTA_TABLE and RTA_PREFSRC to rtm_ipv6_policy 2018-10-21 08:45:40 +01:00
sit.c ipv6: sit: better validate user provided tunnel names 2018-10-21 08:45:15 +01:00
syncookies.c ipv6: add complete rcu protection around np->opt 2015-12-18 16:06:24 +00:00
sysctl_net_ipv6.c net: add a sysctl to reflect the fwmark on replies 2014-05-13 18:35:08 -04:00
tcp_ipv6.c tcp md5sig: Use skb's saddr when replying to an incoming segment 2018-03-03 15:51:53 +00:00
tcpv6_offload.c net-gre-gro: Fix a bug that breaks the forwarding path 2014-07-16 14:45:26 -07:00
tunnel6.c ipv6: fix tunnel error handling 2015-12-13 17:49:43 +00:00
udp.c udp: prevent skbs lingering in tunnel socket queues 2017-03-16 02:27:17 +00:00
udp_impl.h net: ipv4/ipv6: Remove extern from function prototypes 2013-10-19 19:12:11 -04:00
udp_offload.c net: avoid skb_warn_bad_offload false positives on UFO 2017-11-11 13:33:18 +00:00
udplite.c net: Eliminate no_check from protosw 2014-05-23 16:28:53 -04:00
xfrm6_input.c xfrm: Reinject transport-mode packets through tasklet 2018-03-03 15:52:02 +00:00
xfrm6_mode_beet.c ipsec: be careful of non existing mac headers 2012-02-23 16:50:45 -05:00
xfrm6_mode_ro.c ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt() 2017-09-15 18:29:54 +01:00
xfrm6_mode_transport.c ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt() 2017-09-15 18:29:54 +01:00
xfrm6_mode_tunnel.c ipv6: update skb->csum when CE mark is propagated 2016-01-28 11:06:06 +00:00
xfrm6_output.c ipv6: Fix IPsec pre-encap fragmentation check 2015-11-16 11:27:17 +00:00
xfrm6_policy.c xfrm6: avoid potential infinite loop in _decode_session6() 2018-10-21 08:46:04 +01:00
xfrm6_protocol.c xfrm6: Properly handle unsupported protocols 2014-05-06 07:08:38 +02:00
xfrm6_state.c xfrm: make local error reporting more robust 2013-08-14 13:07:12 +02:00
xfrm6_tunnel.c ipv4/ipv6: Fix FSF address in file headers 2013-12-06 12:37:56 -05:00