The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=1ea204b91909fe6c2060b1fa522b31bb5b8c7dd1
commit 1ea204b91909fe6c2060b1fa522b31bb5b8c7dd1 Author: Gleb Smirnoff <[email protected]> AuthorDate: 2026-07-07 16:28:48 +0000 Commit: Gleb Smirnoff <[email protected]> CommitDate: 2026-07-07 16:28:48 +0000 inpcb: make net.inet.ip.portrange port number limiting sysctls unsigned And make net.inet.ip.portrange.randomized boolean. Reviewed by: pouria, tuexen, markj Differential Revision: https://reviews.freebsd.org/D57291 --- sys/netinet/in_pcb.c | 48 ++++++++++++++++++++++++------------------------ sys/netinet/in_pcb.h | 18 +++++++++--------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 84b175b42eec..7a9e327893ca 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -115,23 +115,23 @@ * These configure the range of local port addresses assigned to * "unspecified" outgoing connections/packets/whatever. */ -VNET_DEFINE(int, ipport_lowfirstauto) = IPPORT_RESERVED - 1; /* 1023 */ -VNET_DEFINE(int, ipport_lowlastauto) = IPPORT_RESERVEDSTART; /* 600 */ -VNET_DEFINE(int, ipport_firstauto) = IPPORT_EPHEMERALFIRST; /* 10000 */ -VNET_DEFINE(int, ipport_lastauto) = IPPORT_EPHEMERALLAST; /* 65535 */ -VNET_DEFINE(int, ipport_hifirstauto) = IPPORT_HIFIRSTAUTO; /* 49152 */ -VNET_DEFINE(int, ipport_hilastauto) = IPPORT_HILASTAUTO; /* 65535 */ +VNET_DEFINE(u_int, ipport_lowfirstauto) = IPPORT_RESERVED - 1; /* 1023 */ +VNET_DEFINE(u_int, ipport_lowlastauto) = IPPORT_RESERVEDSTART; /* 600 */ +VNET_DEFINE(u_int, ipport_firstauto) = IPPORT_EPHEMERALFIRST; /* 10000 */ +VNET_DEFINE(u_int, ipport_lastauto) = IPPORT_EPHEMERALLAST; /* 65535 */ +VNET_DEFINE(u_int, ipport_hifirstauto) = IPPORT_HIFIRSTAUTO; /* 49152 */ +VNET_DEFINE(u_int, ipport_hilastauto) = IPPORT_HILASTAUTO; /* 65535 */ /* * Reserved ports accessible only to root. There are significant * security considerations that must be accounted for when changing these, * but the security benefits can be great. Please be careful. */ -VNET_DEFINE(int, ipport_reservedhigh) = IPPORT_RESERVED - 1; /* 1023 */ -VNET_DEFINE(int, ipport_reservedlow); +VNET_DEFINE(u_int, ipport_reservedhigh) = IPPORT_RESERVED - 1; /* 1023 */ +VNET_DEFINE(u_int, ipport_reservedlow); /* Enable random ephemeral port allocation by default. */ -VNET_DEFINE(int, ipport_randomized) = 1; +VNET_DEFINE(bool, ipport_randomized) = true; #ifdef INET static struct inpcb *in_pcblookup_internal(struct inpcbinfo *pcbinfo, @@ -166,35 +166,35 @@ static SYSCTL_NODE(_net_inet_ip, IPPROTO_IP, portrange, "IP Ports"); SYSCTL_PROC(_net_inet_ip_portrange, OID_AUTO, lowfirst, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - &VNET_NAME(ipport_lowfirstauto), 0, &sysctl_net_ipport_check, "I", + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &VNET_NAME(ipport_lowfirstauto), 0, &sysctl_net_ipport_check, "IU", ""); SYSCTL_PROC(_net_inet_ip_portrange, OID_AUTO, lowlast, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - &VNET_NAME(ipport_lowlastauto), 0, &sysctl_net_ipport_check, "I", + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &VNET_NAME(ipport_lowlastauto), 0, &sysctl_net_ipport_check, "IU", ""); SYSCTL_PROC(_net_inet_ip_portrange, OID_AUTO, first, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - &VNET_NAME(ipport_firstauto), 0, &sysctl_net_ipport_check, "I", + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &VNET_NAME(ipport_firstauto), 0, &sysctl_net_ipport_check, "IU", ""); SYSCTL_PROC(_net_inet_ip_portrange, OID_AUTO, last, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - &VNET_NAME(ipport_lastauto), 0, &sysctl_net_ipport_check, "I", + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &VNET_NAME(ipport_lastauto), 0, &sysctl_net_ipport_check, "IU", ""); SYSCTL_PROC(_net_inet_ip_portrange, OID_AUTO, hifirst, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - &VNET_NAME(ipport_hifirstauto), 0, &sysctl_net_ipport_check, "I", + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &VNET_NAME(ipport_hifirstauto), 0, &sysctl_net_ipport_check, "IU", ""); SYSCTL_PROC(_net_inet_ip_portrange, OID_AUTO, hilast, - CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - &VNET_NAME(ipport_hilastauto), 0, &sysctl_net_ipport_check, "I", + CTLFLAG_VNET | CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + &VNET_NAME(ipport_hilastauto), 0, &sysctl_net_ipport_check, "IU", ""); -SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, reservedhigh, +SYSCTL_UINT(_net_inet_ip_portrange, OID_AUTO, reservedhigh, CTLFLAG_VNET | CTLFLAG_RW | CTLFLAG_SECURE, &VNET_NAME(ipport_reservedhigh), 0, ""); -SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, reservedlow, +SYSCTL_UINT(_net_inet_ip_portrange, OID_AUTO, reservedlow, CTLFLAG_RW|CTLFLAG_SECURE, &VNET_NAME(ipport_reservedlow), 0, ""); -SYSCTL_INT(_net_inet_ip_portrange, OID_AUTO, randomized, +SYSCTL_BOOL(_net_inet_ip_portrange, OID_AUTO, randomized, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ipport_randomized), 0, "Enable random port allocation"); diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h index ea93780730de..933a4c42808e 100644 --- a/sys/netinet/in_pcb.h +++ b/sys/netinet/in_pcb.h @@ -624,15 +624,15 @@ typedef enum { #define INP_CHECK_SOCKAF(so, af) (INP_SOCKAF(so) == af) -VNET_DECLARE(int, ipport_reservedhigh); -VNET_DECLARE(int, ipport_reservedlow); -VNET_DECLARE(int, ipport_lowfirstauto); -VNET_DECLARE(int, ipport_lowlastauto); -VNET_DECLARE(int, ipport_firstauto); -VNET_DECLARE(int, ipport_lastauto); -VNET_DECLARE(int, ipport_hifirstauto); -VNET_DECLARE(int, ipport_hilastauto); -VNET_DECLARE(int, ipport_randomized); +VNET_DECLARE(u_int, ipport_reservedhigh); +VNET_DECLARE(u_int, ipport_reservedlow); +VNET_DECLARE(u_int, ipport_lowfirstauto); +VNET_DECLARE(u_int, ipport_lowlastauto); +VNET_DECLARE(u_int, ipport_firstauto); +VNET_DECLARE(u_int, ipport_lastauto); +VNET_DECLARE(u_int, ipport_hifirstauto); +VNET_DECLARE(u_int, ipport_hilastauto); +VNET_DECLARE(bool, ipport_randomized); #define V_ipport_reservedhigh VNET(ipport_reservedhigh) #define V_ipport_reservedlow VNET(ipport_reservedlow)
