freebsd-dev/sys/netpfil/ipfw
Hans Petter Selasky c8cfbc066f Properly drain callouts in the IPFW subsystem to avoid use after free
panics when unloading the dummynet and IPFW modules:

- The callout drain function can sleep and should not be called having
a non-sleepable lock locked. Remove locks around "ipfw_dyn_uninit(0)".

- Add a new "dn_gone" variable to prevent asynchronous restart of
dummynet callouts when unloading the dummynet kernel module.

- Call "dn_reschedule()" locked so that "dn_gone" can be set and
checked atomically with regard to starting a new callout.

Reviewed by:	hiren
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D3855
2015-12-15 09:02:05 +00:00
..
test add code to compute fairness indexes; 2015-07-10 18:10:40 +00:00
dn_heap.c one more warning suppression when compiling the test code in userspace. 2015-07-10 19:18:49 +00:00
dn_heap.h
dn_sched_fifo.c
dn_sched_prio.c
dn_sched_qfq.c assorted algorithmic fixes from Paolo Valente (one of my qfq coauthors): 2015-07-10 19:24:36 +00:00
dn_sched_rr.c
dn_sched_wf2q.c
dn_sched.h remove an extra ; after MODULE_DEPEND 2015-05-19 14:49:31 +00:00
dummynet.txt Summary: Two quick edits to the implementation notes as they're no 2014-02-15 18:36:31 +00:00
ip_dn_glue.c DNOLD_IS_ECN introduced by r266941 is not required. 2014-06-01 20:19:17 +00:00
ip_dn_io.c Properly drain callouts in the IPFW subsystem to avoid use after free 2015-12-15 09:02:05 +00:00
ip_dn_private.h remove a redundant ; at the end of a function 2015-05-19 15:29:00 +00:00
ip_dummynet.c Properly drain callouts in the IPFW subsystem to avoid use after free 2015-12-15 09:02:05 +00:00
ip_fw2.c Properly drain callouts in the IPFW subsystem to avoid use after free 2015-12-15 09:02:05 +00:00
ip_fw_dynamic.c Fix dynamic IPv6 rules showing junk for non-specified address masks. 2015-11-17 20:42:08 +00:00
ip_fw_iface.c * Make sure table algorithm destroy hook is always called without locks 2015-02-05 13:49:04 +00:00
ip_fw_log.c Print proper setfib values in ipfw log. 2015-11-08 13:44:21 +00:00
ip_fw_nat.c Use free_nat_instance() for nat instance deletion. 2015-04-27 09:16:22 +00:00
ip_fw_pfil.c use proper types to represent function pointers 2015-05-19 16:51:30 +00:00
ip_fw_private.h Add destroy_object callback to object rewriting framework. 2015-11-23 22:06:55 +00:00
ip_fw_sockopt.c Add destroy_object callback to object rewriting framework. 2015-11-23 22:06:55 +00:00
ip_fw_table_algo.c * Make sure table algorithm destroy hook is always called without locks 2015-02-05 13:49:04 +00:00
ip_fw_table_value.c Remove ptei->value check from ipfw_link_table_values(): 2015-05-12 20:42:42 +00:00
ip_fw_table.c Remove now obsolete KASSERT. 2015-11-03 22:23:09 +00:00
ip_fw_table.h Add ipfw_check_object_name_generic() function to do basic checks for an 2015-11-03 10:29:46 +00:00