Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jun 2025 22:36:17 GMT
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 2fcbd5a75b5a - main - netgraph/ksocket tests: Bind to a specific address
Message-ID:  <202506202236.55KMaHOB039092@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=2fcbd5a75b5adea9830b6688f3ae529bdfbc28f0

commit 2fcbd5a75b5adea9830b6688f3ae529bdfbc28f0
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2025-06-20 22:33:42 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2025-06-20 22:35:38 +0000

    netgraph/ksocket tests: Bind to a specific address
    
    Otherwise we rely on connect(INADDR_ANY) connecting to a socket bound to
    an arbitrary host address, but as of commit cd240957d7ba this is
    disallowed by default.
    
    Reported by:    Siva Mahadevan <me@svmhdvn.name>
    Fixes:          cd240957d7ba ("netinet: Disallow connections to INADDR_ANY")
---
 tests/sys/netgraph/ksocket.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/tests/sys/netgraph/ksocket.c b/tests/sys/netgraph/ksocket.c
index e97b9b3f0691..d3ea5ca2876e 100644
--- a/tests/sys/netgraph/ksocket.c
+++ b/tests/sys/netgraph/ksocket.c
@@ -50,15 +50,17 @@ hellocheck(int wr, int rd)
 ATF_TC_WITHOUT_HEAD(udp_connect);
 ATF_TC_BODY(udp_connect, tc)
 {
-	struct sockaddr sa = {
-		.sa_family = AF_INET,
+	struct sockaddr_in sin = {
+		.sin_family = AF_INET,
+		.sin_addr.s_addr = htonl(INADDR_LOOPBACK),
+		.sin_len = sizeof(sin),
 	};
-	socklen_t slen = sizeof(sa);
+	socklen_t slen = sizeof(sin);
 	int ds, cs, us;
 
 	ATF_REQUIRE((us = socket(PF_INET, SOCK_DGRAM, 0)) > 0);
-	ATF_REQUIRE(bind(us, &sa, sizeof(sa)) == 0);
-	ATF_REQUIRE(getsockname(us, &sa, &slen) == 0);
+	ATF_REQUIRE(bind(us, (struct sockaddr *)&sin, sizeof(sin)) == 0);
+	ATF_REQUIRE(getsockname(us, (struct sockaddr *)&sin, &slen) == 0);
 
 	struct ngm_mkpeer mkp = {
 		.type = NG_KSOCKET_NODE_TYPE,
@@ -69,7 +71,7 @@ ATF_TC_BODY(udp_connect, tc)
 	ATF_REQUIRE(NgSendMsg(cs, ".", NGM_GENERIC_COOKIE, NGM_MKPEER, &mkp,
 	    sizeof(mkp)) >= 0);
 	ATF_REQUIRE(NgSendMsg(cs, ".:" OURHOOK, NGM_KSOCKET_COOKIE,
-	    NGM_KSOCKET_CONNECT, &sa, sizeof(sa)) >= 0);
+	    NGM_KSOCKET_CONNECT, &sin, sizeof(sin)) >= 0);
 
 	hellocheck(ds, us);
 }
@@ -79,6 +81,7 @@ ATF_TC_BODY(udp_bind, tc)
 {
 	struct sockaddr_in sin = {
 		.sin_family = AF_INET,
+		.sin_addr.s_addr = htonl(INADDR_LOOPBACK),
 		.sin_len = sizeof(sin),
 	};
 	struct ng_mesg *rep;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506202236.55KMaHOB039092>