linux_dsm_epyc7002/include/net
Stefano Brivio e6ac64d4c4 neighbour: Avoid writing before skb->head in neigh_hh_output()
While skb_push() makes the kernel panic if the skb headroom is less than
the unaligned hardware header size, it will proceed normally in case we
copy more than that because of alignment, and we'll silently corrupt
adjacent slabs.

In the case fixed by the previous patch,
"ipv6: Check available headroom in ip6_xmit() even without options", we
end up in neigh_hh_output() with 14 bytes headroom, 14 bytes hardware
header and write 16 bytes, starting 2 bytes before the allocated buffer.

Always check we're not writing before skb->head and, if the headroom is
not enough, warn and drop the packet.

v2:
 - instead of panicking with BUG_ON(), WARN_ON_ONCE() and drop the packet
   (Eric Dumazet)
 - if we avoid the panic, though, we need to explicitly check the headroom
   before the memcpy(), otherwise we'll have corrupted slabs on a running
   kernel, after we warn
 - use __skb_push() instead of skb_push(), as the headroom check is
   already implemented here explicitly (Eric Dumazet)

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-12-07 16:24:40 -08:00
..
9p 9p: Add refcount to p9_req_t 2018-09-08 01:39:47 +09:00
bluetooth Bluetooth: Errata Service Release 8, Erratum 3253 2018-10-14 10:25:47 +02:00
caif
iucv net/af_iucv: locate IUCV header via skb_network_header() 2018-09-26 09:56:07 -07:00
netfilter netfilter: add missing error handling code for register functions 2018-11-27 00:35:19 +01:00
netns net/ipv6: Add knob to skip DELROUTE message on device down 2018-10-12 09:47:02 -07:00
nfc NFC: Fix the number of pipes 2018-09-18 19:55:01 -07:00
phonet
sctp sctp: frag_point sanity check 2018-12-05 20:37:52 -08:00
tc_act
6lowpan.h
act_api.h net_sched: convert idrinfo->lock from spinlock to a mutex 2018-10-05 00:36:31 -07:00
addrconf.h net/ipv6: Add anycast addresses to a global hashtable 2018-11-02 23:54:56 -07:00
af_ieee802154.h
af_rxrpc.h rxrpc: Fix life check 2018-11-15 11:35:40 -08:00
af_unix.h net: drop a space before tabs 2018-10-31 12:37:12 -07:00
af_vsock.h vsock: split dwork to avoid reinitializations 2018-08-07 12:39:13 -07:00
ah.h
arp.h
atmclip.h
ax25.h
ax88796.h
bond_3ad.h include/net/bond_3ad: Simplify the code by using the ARRAY_SIZE 2018-08-04 13:23:15 -07:00
bond_alb.h
bond_options.h
bonding.h bonding: avoid possible dead-lock 2018-09-26 20:22:19 -07:00
busy_poll.h
calipso.h
cfg80211-wext.h
cfg80211.h nl80211: Add per peer statistics to compute FCS error rate 2018-10-12 12:56:34 +02:00
cfg802154.h
checksum.h
cipso_ipv4.h
cls_cgroup.h
codel_impl.h
codel_qdisc.h
codel.h
compat.h
datalink.h
dcbevent.h
dcbnl.h
devlink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-12 21:38:46 -07:00
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dn.h
dsa.h net: dsa: Add Lantiq / Intel GSWIP tag support 2018-09-13 08:14:33 -07:00
dsfield.h
dst_cache.h
dst_metadata.h
dst_ops.h
dst.h geneve, vxlan: Don't set exceptions if skb->len < mtu 2018-10-17 21:51:13 -07:00
erspan.h
esp.h
ethoc.h
failover.h
fib_notifier.h
fib_rules.h
firewire.h
flow_dissector.h flow_dissector: allow dissection of tunnel options from metadata 2018-08-07 12:22:14 -07:00
flow.h
fou.h
fq_impl.h
fq.h
garp.h
gen_stats.h net/core: Add new basic hardware counter 2018-09-24 12:18:42 -07:00
genetlink.h genetlink: constify genl_err_attr() argument 2018-08-29 19:42:52 -07:00
geneve.h
gre.h
gro_cells.h
gtp.h
gue.h
hwbm.h
icmp.h
ieee80211_radiotap.h mac80211: support reporting 0-length PSDU in radiotap 2018-09-05 10:08:25 +02:00
ieee802154_netdev.h
if_inet6.h net/ipv6: Add anycast addresses to a global hashtable 2018-11-02 23:54:56 -07:00
ife.h
ila.h
inet6_connection_sock.h
inet6_hashtables.h
inet_common.h
inet_connection_sock.h inet/connection_sock: prefer _THIS_IP_ to current_text_addr 2018-08-14 10:04:36 -07:00
inet_ecn.h inet: Refactor INET_ECN_decapsulate() 2018-10-17 17:45:07 -07:00
inet_frag.h ip: add helpers to process in-order fragments faster. 2018-08-11 17:54:18 -07:00
inet_hashtables.h
inet_sock.h inet: make sure to grab rcu_read_lock before using ireq->ireq_opt 2018-10-02 15:52:12 -07:00
inet_timewait_sock.h
inetpeer.h
ip6_checksum.h
ip6_fib.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-19 11:03:06 -07:00
ip6_route.h net: Add struct for fib dump filter 2018-10-16 00:13:12 -07:00
ip6_tunnel.h
ip_fib.h net: Don't return invalid table id error when dumping all families 2018-10-24 14:06:25 -07:00
ip_tunnels.h
ip_vs.h
ip.h net: Move free of dst_metrics to helper 2018-10-04 21:54:25 -07:00
ipcomp.h
ipconfig.h
ipv6_frag.h
ipv6.h net/ipv6: Make ipv6_route_table_template static 2018-10-10 22:25:10 -07:00
ipx.h
iw_handler.h
kcm.h
l3mdev.h
lag.h
lapb.h
lib80211.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h llc: avoid blocking in llc_sap_close() 2018-09-13 09:04:58 -07:00
lwtunnel.h
mac80211.h mac80211: implement ieee80211_tx_rate_update to update rate 2018-10-12 13:05:40 +02:00
mac802154.h
mip6.h
mld.h
mpls_iptunnel.h
mpls.h
mrp.h
ncsi.h
ndisc.h
neighbour.h neighbour: Avoid writing before skb->head in neigh_hh_output() 2018-12-07 16:24:40 -08:00
net_failover.h
net_namespace.h flow_dissector: implements flow dissector BPF hook 2018-09-14 12:04:33 -07:00
net_ratelimit.h
netevent.h net: ipv4: Notify about changes to ip_forward_update_priority 2018-08-01 09:52:30 -07:00
netlabel.h
netlink.h netlink: replace __NLA_ENSURE implementation 2018-10-12 11:00:22 -07:00
netprio_cgroup.h
netrom.h
nexthop.h
nl802154.h
nsh.h
p8022.h
page_pool.h
ping.h
pkt_cls.h net: sched: remove unused helpers 2018-10-04 21:42:28 -07:00
pkt_sched.h net: sched: extend Qdisc with rcu 2018-09-25 20:17:35 -07:00
pptp.h
protocol.h
psample.h
psnap.h
raw.h
rawv6.h
red.h
regulatory.h cfg80211: make wmm_rule part of the reg_rule structure 2018-08-28 11:11:47 +02:00
request_sock.h
rose.h
route.h net-ipv4: remove 2 always zero parameters from ipv4_redirect() 2018-09-26 20:30:55 -07:00
rsi_91x.h
rtnetlink.h rtnetlink: add rtnl_get_net_ns_capable() 2018-09-05 22:27:11 -07:00
sch_generic.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-09-25 20:29:38 -07:00
scm.h
secure_seq.h
seg6_hmac.h
seg6_local.h
seg6.h
slhc_vj.h
smc.h
snmp.h
sock_reuseport.h bpf: Enable BPF_PROG_TYPE_SK_REUSEPORT bpf prog in reuseport selection 2018-08-11 01:58:46 +02:00
sock.h Revert "net: simplify sock_poll_wait" 2018-10-23 10:57:06 -07:00
Space.h
stp.h
strparser.h
switchdev.h bridge: switchdev: Allow clearing FDB entry offload indication 2018-10-17 17:45:08 -07:00
tcp_states.h
tcp.h tcp: add tcp_reset_xmit_timer() helper 2018-10-23 19:42:44 -07:00
timewait_sock.h
tipc.h
tls.h tls: replace poll implementation with read hook 2018-10-15 12:23:19 -07:00
transp_v6.h
tso.h
tun_proto.h
udp_tunnel.h
udp.h udp: gro behind static key 2018-10-05 11:52:38 -07:00
udplite.h
vsock_addr.h
vxlan.h vxlan: Support marking RDSTs as offloaded 2018-10-17 17:45:08 -07:00
wext.h
wimax.h
x25.h
x25device.h
xdp_sock.h ethtool: don't allow disabling queues with umem installed 2018-10-05 09:31:01 +02:00
xdp.h xdp: export xdp_rxq_info_unreg_mem_model 2018-08-29 12:25:53 -07:00
xfrm.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-08-15 15:04:25 -07:00