git: 1ea204b91909 - main - inpcb: make net.inet.ip.portrange port number limiting sysctls unsigned

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Tue, 07 Jul 2026 16:29:15 UTC
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=1ea204b91909fe6c2060b1fa522b31bb5b8c7dd1

commit 1ea204b91909fe6c2060b1fa522b31bb5b8c7dd1
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2026-07-07 16:28:48 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
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)