opnsense-src/sys/netinet
Mike Karels 637f317c6d IPv6: fix problem with duplicate port assignment with v4-mapped addrs
In in_pcb_lport_dest(), if an IPv6 socket does not match any other IPv6
socket using in6_pcblookup_local(), and if the socket can also connect
to IPv4 (the INP_IPV4 vflag is set), check for IPv4 matches as well.
Otherwise, we can allocate a port that is used by an IPv4 socket
(possibly one created from IPv6 via the same procedure), and then
connect() can fail with EADDRINUSE, when it could have succeeded if
the bound port was not in use.

PR:		265064
Submitted by:	firk at cantconnect.ru (with modifications)
Reviewed by:	bz, melifaro
Differential Revision: https://reviews.freebsd.org/D36012
2022-08-02 09:49:46 -05:00
..
cc tcp cc: don't recurse on non recursive mutex 2022-04-05 13:52:36 +02:00
khelp khelp(9): Fix a typo in a source code comment 2022-04-02 14:10:59 +02:00
libalias libalias(3): Fix two typos in source code comments 2022-04-09 09:14:00 +02:00
netdump ddb: use _FLAGS command macros where appropriate 2022-07-05 11:56:55 -03:00
tcp_stacks tcp rack: simplify computation of rsm start and end 2022-08-02 12:45:56 +02:00
accf_data.c
accf_dns.c
accf_http.c
dccp.h
icmp6.h netinet6: Fix mbuf leak in NDP 2022-05-31 21:06:14 +00:00
icmp_var.h
if_ether.c netinet6: Fix mbuf leak in NDP 2022-05-31 21:06:14 +00:00
if_ether.h
igmp.c mbuf: remove PH_vt alias for mbuf packet header persistent shared data 2022-05-13 13:32:43 -07:00
igmp.h
igmp_var.h igmp: convert igmpstat to use PCPU counters 2020-11-08 18:49:23 +00:00
in.c IPv4: correct limit on loopback_prefix 2022-07-21 09:38:17 -05:00
in.h IPv4: experimental changes to allow net 0/8, 240/4, part of 127/8 2022-07-13 09:46:05 -05:00
in_cksum.c netinet: Implement in_cksum_skip() using m_apply() 2021-11-24 13:31:16 -05:00
in_debug.c Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
in_fib.c routing: refactor private KPI 2022-08-01 10:02:12 +00:00
in_fib.h Refactor fib4/fib6 functions. 2020-11-29 13:41:49 +00:00
in_fib_algo.c Fix IPv4 fib bsearch4() lookup array construction. 2021-01-17 20:32:26 +00:00
in_fib_dxr.c fib_algo: shift / mask by constants in dxr_lookup() 2022-01-17 00:13:47 +01:00
in_gif.c Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
in_jail.c sysent: Get rid of bogus sys/sysent.h include. 2022-05-28 20:52:17 +03:00
in_kdtrace.c Fix dtrace SDT probe tcp:::debug-input 2021-12-20 17:15:43 -09:00
in_kdtrace.h
in_mcast.c ifnet_byindex() actually requires network epoch 2021-12-06 09:32:31 -08:00
in_pcb.c IPv6: fix problem with duplicate port assignment with v4-mapped addrs 2022-08-02 09:49:46 -05:00
in_pcb.h tcp: add sysctl interface for setting socket options 2022-02-09 12:24:41 +01:00
in_pcb_var.h in_pcb: use jenkins hash over the entire IPv6 (or IPv4) address 2021-12-26 10:47:28 -08:00
in_prot.c
in_proto.c domains: make domain_init() initialize only global state 2022-01-03 10:15:22 -08:00
in_rmx.c routing: add nhop(9) kpi. 2022-08-01 08:52:26 +00:00
in_rss.c in_rss: fix set but not used warning 2022-05-07 18:17:33 +02:00
in_rss.h Implement flowid calculation for outbound connections to balance 2020-10-18 17:15:47 +00:00
in_systm.h
in_var.h Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
ip.h tcp: Prevent setting of ECN bits with setsockopt() 2022-02-03 20:06:42 +01:00
ip6.h net: Introduce IPV6_DSCP(), IPV6_ECN() and IPV6_TRAFFIC_CLASS() macros 2021-03-04 20:56:48 +01:00
ip_carp.c carp: fix send error demotion recovery 2021-12-18 17:19:26 -08:00
ip_carp.h
ip_divert.c divert_packet: ip is only used for SCTP. 2022-04-13 16:08:23 -07:00
ip_divert.h
ip_dummynet.h ipfw: use unsigned int for dummynet bandwidth 2021-08-19 10:48:53 +02:00
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c IPv4: fix redirect sending conditions 2021-12-26 15:33:48 +00:00
ip_fw.h ipfw: add support radix tables and table lookup for MAC addresses 2022-06-04 19:12:29 +03:00
ip_gre.c udp: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-12 10:04:59 +02:00
ip_icmp.c IPv4: experimental changes to allow net 0/8, 240/4, part of 127/8 2022-07-13 09:46:05 -05:00
ip_icmp.h
ip_id.c
ip_input.c sockbuf: merge two versions of sbcreatecontrol() into one 2022-05-17 10:10:42 -07:00
ip_mroute.c IPv4 multicast: fix LOR in shutdown path 2022-04-11 14:51:16 -05:00
ip_mroute.h IPv4 multicast: fix netstat -g 2022-03-22 07:38:01 -05:00
ip_options.c
ip_options.h
ip_output.c Fix ipfw fwd that doesn't work in some cases 2022-04-11 14:16:43 +03:00
ip_reass.c ip_reass: do less work in ipreass_slowtimo if possible 2021-08-14 18:50:12 +02:00
ip_var.h protocols: init with standard SYSINIT(9) or VNET_SYSINIT 2022-01-03 10:15:21 -08:00
pim.h
pim_var.h
raw_ip.c rip: Fix a -Wunused-but-set-variable warning 2022-03-01 09:39:43 -05:00
sctp.h Improve the handling of cookie life times. 2020-10-16 10:44:48 +00:00
sctp_asconf.c sctp: improve consistency 2022-05-14 06:28:19 +02:00
sctp_asconf.h
sctp_auth.c
sctp_auth.h
sctp_bsd_addr.c sctp: Remove unused variable. 2022-04-12 14:58:59 -07:00
sctp_bsd_addr.h
sctp_cc_functions.c sctp: plug set-but-not-used vars 2022-04-19 12:45:57 +00:00
sctp_constants.h sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_crc32.c sctp: fix a signed/unsigned mismatch. 2022-02-17 22:45:57 +01:00
sctp_crc32.h sctp: fix a signed/unsigned mismatch. 2022-02-17 22:45:57 +01:00
sctp_header.h Whitespace changes. 2020-09-24 12:26:06 +00:00
sctp_indata.c Fix unused variable warnings in sctp_indata.c 2022-07-25 21:16:05 +02:00
sctp_indata.h
sctp_input.c sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_input.h
sctp_kdtrace.c
sctp_kdtrace.h
sctp_lock_bsd.h sctp: get rid of stcb send lock 2022-03-29 01:50:17 +02:00
sctp_module.c protocols: init with standard SYSINIT(9) or VNET_SYSINIT 2022-01-03 10:15:21 -08:00
sctp_os.h
sctp_os_bsd.h sctp: use sb_avail() when accessing sb_acc for reading 2022-05-14 12:38:43 +02:00
sctp_output.c Fix unused variable warning in sctp_output.c 2022-07-25 21:50:51 +02:00
sctp_output.h sctp: cleanup the SCTP_MAXSEG socket option. 2021-12-27 23:40:31 +01:00
sctp_pcb.c Adjust sctp_drain() definition to avoid clang 15 warning 2022-07-26 19:59:55 +02:00
sctp_pcb.h sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_peeloff.c sctp: Remove an unused sctp_inpcb field 2021-09-07 11:19:29 -04:00
sctp_peeloff.h
sctp_ss_functions.c sctp: fix typos 2022-03-29 21:09:51 +02:00
sctp_structs.h sctp: cleanup, no functional change 2022-06-08 22:35:14 +02:00
sctp_syscalls.c Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
sctp_sysctl.c Adjust sctp_init_sysctls() definition to avoid clang 15 warning 2022-07-25 22:08:35 +02:00
sctp_sysctl.h sctp: fix typos 2022-03-29 21:09:51 +02:00
sctp_timer.c Fix unused variable warning in sctp_timer.c 2022-07-25 22:08:28 +02:00
sctp_timer.h
sctp_uio.h sctp: get rid of stcb send lock 2022-03-29 01:50:17 +02:00
sctp_usrreq.c sctp: add KASSERTs to ensure correct handling of listeners 2022-06-27 19:04:45 +02:00
sctp_var.h sctp: more sb_cc related cleanups 2022-05-23 16:09:23 +02:00
sctputil.c sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctputil.h sctp: more sb_cc related cleanups 2022-05-23 16:09:23 +02:00
siftr.c siftr: expose t_flags2 in siftr output 2022-04-07 10:17:09 +01:00
tcp.h tcp: LRO code to deal with all 12 TCP header flags 2022-02-01 18:41:36 +01:00
tcp_accounting.h This brings into sync FreeBSD with the netflix versions of rack and bbr. 2021-05-06 11:22:26 -04:00
tcp_debug.c tcp: Access all 12 TCP header flags via inline function 2022-02-03 16:21:58 +01:00
tcp_debug.h inet: remove tcp_debug from netinet/tcp_debug.h 2021-11-01 23:10:30 +00:00
tcp_ecn.c tcp: Restore correct ECT marking behavior on SACK retransmissions 2022-02-25 20:05:32 +01:00
tcp_ecn.h tcp: Restore correct ECT marking behavior on SACK retransmissions 2022-02-25 20:05:32 +01:00
tcp_fastopen.c
tcp_fastopen.h Use stub inline functions for no-op versions of tcp_fastopen*(). 2022-04-08 17:25:13 -07:00
tcp_fsm.h tcp: Remove unused v6 state definitions 2021-08-27 08:31:32 -04:00
tcp_hostcache.c tcp(4): Fix a typo in a sysctl description 2021-11-30 07:17:30 +01:00
tcp_hpts.c tcp - hpts timing is off when we are above 1200 connections. 2022-04-14 16:04:08 -04:00
tcp_hpts.h tcp - hpts timing is off when we are above 1200 connections. 2022-04-14 16:04:08 -04:00
tcp_input.c tcp: use a TCP flag to check if connection has been close(2)d 2022-07-04 12:40:51 -07:00
tcp_log_buf.c prometheus_sysctl_exporter: fix metric aliasing 2022-04-19 06:56:39 -06:00
tcp_log_buf.h tcp: remove delayed drop KPI 2021-12-26 08:48:24 -08:00
tcp_lro.c Fix typo (interrups -> interrupts) in a sysctl description in tcp_lro.c. 2022-04-04 13:48:32 -07:00
tcp_lro.h tcp: Avoid conditionally defined fields in union lro_address 2022-02-10 15:39:58 -05:00
tcp_offload.c Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
tcp_offload.h Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
tcp_output.c tcp: Undo the increase in sequence number by 1 due to the FIN flag in case of a transient error. 2022-07-14 03:18:19 +02:00
tcp_pcap.c tcp: fix TCPPCAP for kernels enabling VNET 2022-06-15 23:28:54 +02:00
tcp_pcap.h
tcp_ratelimit.c tcp_ratelimit: Handle some edge cases with TLS + RL send tags. 2022-01-31 16:40:04 -08:00
tcp_ratelimit.h This takes Warners suggested approach to making it so that 2021-05-07 17:32:32 -04:00
tcp_reass.c tcp: Access all 12 TCP header flags via inline function 2022-02-03 16:21:58 +01:00
tcp_sack.c tcp: exclude KASSERTS when rescue retransmissions are in play. 2022-06-08 14:51:31 +02:00
tcp_seq.h tcp: Correctly compute the retransmit length for all 64-bit platforms. 2022-06-03 10:49:17 +02:00
tcp_stats.c
tcp_subr.c sockets: use only soref()/sorele() as socket reference count 2022-07-04 12:40:51 -07:00
tcp_syncache.c TCP syncache: enhance KASSERT output 2022-02-14 00:03:20 +00:00
tcp_syncache.h tcp: Add/update AccECN related statistics and numbers 2022-02-10 00:21:31 +01:00
tcp_timer.c netinet: simplify RSS ifdef statements 2022-02-07 19:22:03 -07:00
tcp_timer.h tcp: virtualise net.inet.tcp.msl sysctl. 2021-12-26 14:56:04 +00:00
tcp_timewait.c sockets: use only soref()/sorele() as socket reference count 2022-07-04 12:40:51 -07:00
tcp_usrreq.c tcp: remove a condition in tcp_usr_detach() that never happens 2022-07-06 21:09:45 -07:00
tcp_var.h tcp: use a TCP flag to check if connection has been close(2)d 2022-07-04 12:40:51 -07:00
tcpip.h
toecore.c tcp: TCP output method can request tcp_drop 2021-12-26 08:48:19 -08:00
toecore.h Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
udp.h headers: make a few more headers self-contained 2022-01-03 10:12:30 +01:00
udp_usrreq.c sockbuf: merge two versions of sbcreatecontrol() into one 2022-05-17 10:10:42 -07:00
udp_var.h udp: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-12 10:04:59 +02:00
udplite.h