freebsd-nq/sys/net
Andrey V. Elsukov a716ad4a35 Fix possible panic during ifnet detach in rtsock.
The panic can happen, when some application does dump of routing table
using sysctl interface. To prevent this, set IFF_DYING flag in
if_detach_internal() function, when ifnet under lock is removed from
the chain. In sysctl_rtsock() take IFNET_RLOCK_NOSLEEP() to prevent
ifnet detach during routes enumeration. In case, if some interface was
detached in the time before we take the lock, add the check, that ifnet
is not DYING. This prevents access to memory that could be freed after
ifnet is unlinked.

PR:		227720, 230498, 233306
Reviewed by:	bz, eugen
MFC after:	1 week
Sponsored by:	Yandex LLC
Differential Revision:	https://reviews.freebsd.org/D18338
2018-11-27 09:04:06 +00:00
..
altq Fix flags collision causing inability to enable CBQ in ALTQ 2018-11-16 03:42:29 +00:00
bpf_buffer.c
bpf_buffer.h
bpf_filter.c
bpf_jitter.c Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
bpf_jitter.h Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
bpf.h
bpfdesc.h Move BPFIF_* macro definitions into .c file, where struct bpf_if is 2018-06-19 10:34:45 +00:00
bridgestp.c
bridgestp.h
dlt.h
ethernet.h
firewire.h
ieee8023ad_lacp.c if_media: Add new 2.5G/5G/25G/40G/50G/100G/200G/400G media types 2018-08-22 18:19:56 +00:00
ieee8023ad_lacp.h
ieee_oui.h
if_arp.h
if_bridge.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_bridgevar.h
if_clone.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_clone.h
if_dead.c
if_debug.c
if_disc.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_dl.h
if_edsc.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_enc.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_enc.h
if_epair.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_ethersubr.c Initial implementation of draft-ietf-6man-ipv6only-flag. 2018-10-30 20:08:48 +00:00
if_fwsubr.c
if_gif.c Add handling for appearing/disappearing of ingress addresses to if_gif(4). 2018-10-21 18:06:15 +00:00
if_gif.h Add handling for appearing/disappearing of ingress addresses to if_gif(4). 2018-10-21 18:06:15 +00:00
if_gre.c Add handling for appearing/disappearing of ingress addresses to if_gre(4). 2018-10-21 18:13:45 +00:00
if_gre.h Add handling for appearing/disappearing of ingress addresses to if_gre(4). 2018-10-21 18:13:45 +00:00
if_ipsec.c Allow configuration of several ipsec interfaces with the same tunnel 2018-11-16 14:21:57 +00:00
if_ipsec.h
if_lagg.c Allow changing lagg(4) MTU. 2018-10-30 09:53:57 +00:00
if_lagg.h
if_llatbl.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_llatbl.h
if_llc.h
if_loop.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_me.c Add the check that current VNET is ready and access to srchash is allowed. 2018-10-23 13:11:45 +00:00
if_media.c
if_media.h if_media: Add new 2.5G/5G/25G/40G/50G/100G/200G/400G media types 2018-08-22 18:19:56 +00:00
if_mib.c
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c
if_spppsubr.c
if_stf.c Prevent stf(4) from panicing due to unprotected access to INADDR_HASH. 2018-10-27 04:45:28 +00:00
if_tap.c Use strlcpy() instead of strncpy(). 2018-10-03 07:35:16 +00:00
if_tap.h
if_tapvar.h
if_tun.c Use strlcpy() instead of strncpy(). 2018-10-03 07:35:16 +00:00
if_tun.h
if_types.h
if_var.h For compatibility KPI functions like if_addr_rlock() that used to have 2018-11-13 22:58:38 +00:00
if_vlan_var.h Add the ability to look up the 3b PCP of a VLAN interface. Use it in 2018-08-16 23:46:38 +00:00
if_vlan.c Unbreak kernel build with VLAN_ARRAY defined. 2018-11-21 13:34:21 +00:00
if_vxlan.c
if_vxlan.h
if.c Fix possible panic during ifnet detach in rtsock. 2018-11-27 09:04:06 +00:00
if.h Plug routing sysctl leaks. 2018-11-26 13:42:18 +00:00
ifdi_if.m
iflib_clone.c
iflib_private.h ixl/iavf(4): Change ixlv to iavf and update it to use iflib(9) 2018-10-12 22:40:54 +00:00
iflib.c Clear RX completion queue state veriables in iflib_stop() 2018-11-14 20:36:18 +00:00
iflib.h ixl/iavf(4): Change ixlv to iavf and update it to use iflib(9) 2018-10-12 22:40:54 +00:00
ifq.h
mp_ring.c Add knob to control tx ring abdication. 2018-07-20 17:45:26 +00:00
mp_ring.h Add knob to control tx ring abdication. 2018-07-20 17:45:26 +00:00
mppc.h
mppcc.c
mppcd.c
netisr_internal.h
netisr.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
netisr.h
netmap_legacy.h
netmap_user.h netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_virt.h
netmap.h netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
paravirt.h
pfil.c
pfil.h
pfkeyv2.h
pfvar.h pfsync: Handle syncdev going away 2018-11-02 16:57:23 +00:00
ppp_defs.h
radix_mpath.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
radix_mpath.h
radix.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
radix.h Fix typo. 2018-06-16 19:21:09 +00:00
raw_cb.c
raw_cb.h
raw_usrreq.c
rndis.h
route_var.h Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
route.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
route.h Plug routing sysctl leaks. 2018-11-26 13:42:18 +00:00
rss_config.c
rss_config.h
rtsock.c Fix possible panic during ifnet detach in rtsock. 2018-11-27 09:04:06 +00:00
sff8436.h
sff8472.h
slcompress.c
slcompress.h
toeplitz.c
toeplitz.h
vnet.c With more excessive use of modules, more kernel parts working with 2018-10-30 20:45:15 +00:00
vnet.h Don't mark module data as static on RISC-V. 2018-09-12 08:05:33 +00:00