opnsense-src/sys/netinet
John Baldwin c6f4ea8062 When cancelling multicast timers on an interface, don't release the
reference on a group in the leaving state while iterating over the loop.
Instead, use the same approach used in igmp_ifdetach() and mld_ifdetach()
of placing the groups to free on pending release list and then releasing
the references after dropping the IF_ADDR_LOCK.  This closes an ugly race
where the code was dropping the lock in the middle of iterating over the
list.  It also fixes some additional potential use-after-free bugs since
the cancellation routine also applied other changes to the group after
dropping the reference.  Now those changes are performed before the
reference is dropped and the group is potentially freed.

Prodded to fix by:	glebius
Reviewed by:	bz
MFC after:	1 week
2012-01-03 20:34:52 +00:00
..
cc Staticize malloc types. 2011-04-13 11:28:46 +00:00
ipfw - add a missing "be" and "in" 2011-11-11 22:27:09 +00:00
khelp Use the full and proper company name for Swinburne University of Technology 2011-04-12 08:13:18 +00:00
libalias Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
accf_data.c
accf_dns.c
accf_http.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
cc.h Use the full and proper company name for Swinburne University of Technology 2011-04-12 08:13:18 +00:00
icmp6.h - Implement RDNSS and DNSSL options (RFC 6106, IPv6 Router Advertisement 2011-06-06 03:06:43 +00:00
icmp_var.h Many network stack subsystems use a single global data structure to hold 2009-08-02 19:43:32 +00:00
if_atm.c Bring back (most of) NATM to avoid further bitrot after r186119. 2010-12-15 22:58:45 +00:00
if_atm.h
if_ether.c Don't fallback to a CARP address in BACKUP state. 2011-12-29 15:59:14 +00:00
if_ether.h A major overhaul of the CARP implementation. The ip_carp.c was started 2011-12-16 12:16:56 +00:00
igmp.c When cancelling multicast timers on an interface, don't release the 2012-01-03 20:34:52 +00:00
igmp.h
igmp_var.h
in.c Provide ABI compatibility shim to enable configuring of addresses 2011-12-21 12:39:08 +00:00
in.h Add support for IPv4 /31 prefixes, as described in RFC3021. 2011-10-15 18:41:25 +00:00
in_cksum.c
in_debug.c Remove last remnants of classful addressing: 2011-10-15 16:28:06 +00:00
in_gif.c Update packet filter (pf) code to OpenBSD 4.5. 2011-06-28 11:57:25 +00:00
in_gif.h
in_mcast.c Defer the work of freeing IPv4 multicast options from a socket to an 2011-12-29 20:41:16 +00:00
in_pcb.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
in_pcb.h Cache SO_REUSEPORT socket option in inpcb-layer in order to avoid 2011-11-06 10:47:20 +00:00
in_pcbgroup.c Implement a CPU-affine TCP and UDP connection lookup data structure, 2011-06-06 12:55:02 +00:00
in_proto.c The socket API only specifies SCTP for SOCK_SEQPACKET and 2011-07-12 19:29:29 +00:00
in_rmx.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
in_systm.h
in_var.h A major overhaul of the CARP implementation. The ip_carp.c was started 2011-12-16 12:16:56 +00:00
ip.h use u_char instead of u_int for short bitfields. 2010-02-01 14:13:44 +00:00
ip6.h Fix more continuous/contiguous typos (cf. r215955) 2010-11-27 21:51:39 +00:00
ip_carp.c Use a better log message for master down event. 2011-12-22 18:48:21 +00:00
ip_carp.h Restore a feature that was present in 5.x and 6.x, and was cleared in 2011-12-20 13:53:31 +00:00
ip_divert.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
ip_divert.h Various cleanup done in ipfw3-head branch including: 2010-01-04 19:01:22 +00:00
ip_dummynet.h whitespace fixes (trailing whitespace, bad indentation 2010-04-19 16:17:30 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c (S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument. 2009-12-28 22:56:30 +00:00
ip_encap.h
ip_fastfwd.c Use correct field to track statistics counting error as bad header length. 2010-12-05 01:09:48 +00:00
ip_fw.h Add support for IPv6 to ipfw fwd: 2011-08-20 17:05:11 +00:00
ip_gre.c The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-01 17:05:46 +00:00
ip_gre.h The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-01 17:05:46 +00:00
ip_icmp.c Update packet filter (pf) code to OpenBSD 4.5. 2011-06-28 11:57:25 +00:00
ip_icmp.h MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
ip_id.c
ip_input.c Remove last remnants of classful addressing: 2011-10-15 16:28:06 +00:00
ip_ipsec.c Correct comments and debug logging in ipsec to better match reality. 2011-06-08 03:02:11 +00:00
ip_ipsec.h Remove ifdefed out part of code, which seems to have originated a decade ago 2009-11-09 19:53:34 +00:00
ip_mroute.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
ip_mroute.h Virtualize the IPv4 multicast routing code. 2010-06-02 15:44:43 +00:00
ip_options.c Use ifa_ifwithaddr_check() rather than ifa_ifwithaddr() as we are not 2010-10-14 12:32:49 +00:00
ip_options.h
ip_output.c Cache SO_REUSEPORT socket option in inpcb-layer in order to avoid 2011-11-06 10:47:20 +00:00
ip_var.h Defer the work of freeing IPv4 multicast options from a socket to an 2011-12-29 20:41:16 +00:00
pim.h
pim_var.h Virtualize the IPv4 multicast routing code. 2010-06-02 15:44:43 +00:00
raw_ip.c As I came by and noticed add a comment that inp locking is a bit optistic 2012-01-02 09:18:58 +00:00
sctp.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_asconf.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_asconf.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_auth.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_auth.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_bsd_addr.c Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_bsd_addr.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_cc_functions.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_constants.h Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_crc32.c 1) Typo correction in comments and one spacing change. 2011-02-05 12:12:51 +00:00
sctp_crc32.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_dtrace_declare.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_dtrace_define.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_header.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_indata.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_indata.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_input.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_input.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_lock_bsd.h 1) Typo correction in comments and one spacing change. 2011-02-05 12:12:51 +00:00
sctp_os.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_os_bsd.h Remove some leftover debug code. 2011-04-30 11:22:30 +00:00
sctp_output.c Use queue(3) macros instead of home-rolled versions in several places in 2011-12-29 18:25:18 +00:00
sctp_output.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_pcb.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_pcb.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_peeloff.c Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_peeloff.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_ss_functions.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_structs.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_sysctl.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_sysctl.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_timer.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_timer.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_uio.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
sctp_usrreq.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctp_var.h Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctputil.c Address issues found by clang. While there, fix also some style 2011-12-27 10:16:24 +00:00
sctputil.h Fix unused parameter warnings. 2011-12-17 19:21:40 +00:00
siftr.c Decompose the current single inpcbinfo lock into two locks: 2011-05-30 09:43:55 +00:00
tcp.h Add missing #includes. 2011-10-21 12:58:34 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
tcp_hostcache.h
tcp_input.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
tcp_lro.c Don't allow lro->len to exceed 65535, as this will result in overflow 2011-07-05 18:43:54 +00:00
tcp_lro.h Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00
tcp_offload.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
tcp_offload.h Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
tcp_output.c Restore sysctl names for tcp_sendspace/tcp_recvspace. 2011-11-02 20:58:47 +00:00
tcp_reass.c Plug a TCP reassembly UMA zone leak introduced in r226113 by only using the 2011-11-27 02:32:08 +00:00
tcp_sack.c Covers values if (BYTES_THIS_ACK(tp, th) / tp->t_maxseg) value is from 2011-03-28 19:03:56 +00:00
tcp_seq.h
tcp_subr.c Unbreak no-INET kernels after r223839 adding the needed #ifdef INET. 2011-07-14 13:44:48 +00:00
tcp_syncache.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
tcp_syncache.h Add spares to the network stack for FreeBSD-9: 2011-07-17 21:15:20 +00:00
tcp_timer.c Make sure the inp wasn't dropped when rexmt let go of the inp and 2011-10-12 19:52:23 +00:00
tcp_timer.h Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp_timewait.c Oops, fix order of sequence numbers in KASSERT()'s to catch negative 2011-05-14 14:41:40 +00:00
tcp_usrreq.c Move the tcp_sendspace and tcp_recvspace sysctl's from 2011-10-16 20:18:39 +00:00
tcp_var.h Remove the ss_fltsz and ss_fltsz_local sysctl's which have 2011-10-16 20:06:44 +00:00
tcpip.h
toedev.h
udp.h Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00
udp_usrreq.c Add support for IPv6 to ipfw fwd: 2011-08-20 17:05:11 +00:00
udp_var.h Forward declare mbuf and inpcb. 2011-10-16 10:58:00 +00:00