git: ce9c46738295 - main - ktrace tests: don't use INADDR_ANY as a destination for sendto(2)

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Wed, 02 Apr 2025 16:25:33 UTC
The branch main has been updated by glebius:

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

commit ce9c4673829561bf66c78577be2b078d5662a33b
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2025-04-02 16:21:04 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2025-04-02 16:25:01 +0000

    ktrace tests: don't use INADDR_ANY as a destination for sendto(2)
    
    The INADDR_ANY is a broadcast address, and with recent changes its use as
    destination for UDP sendto(2) was disallowed unless SO_BROADCAST is set.
    Use just a localhost address for a successful sendto(2).
    
    While here convert a couple checks that happen in the parent to use normal
    ATF_REQUIRE() instead of CHILD_REQUIRE().
    
    PR:                     285851
    Fixes:                  3b281d1421a78b588c5fc4182009ce62d8823d95
---
 tests/sys/kern/ktrace_test.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tests/sys/kern/ktrace_test.c b/tests/sys/kern/ktrace_test.c
index dfd60b73a5cd..785c78bedaba 100644
--- a/tests/sys/kern/ktrace_test.c
+++ b/tests/sys/kern/ktrace_test.c
@@ -378,12 +378,11 @@ ATF_TC_BODY(ktrace__cap_sockaddr, tc)
 	ATF_REQUIRE(sigaddset(&set, SIGUSR1) != -1);
 	ATF_REQUIRE(sigprocmask(SIG_BLOCK, &set, NULL) != -1);
 
-	CHILD_REQUIRE((sfd = socket(AF_INET, SOCK_DGRAM,
-	    IPPROTO_UDP)) != -1);
+	ATF_REQUIRE((sfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) != -1);
 	addr.sin_family = AF_INET;
 	addr.sin_port = htons(5000);
-	addr.sin_addr.s_addr = INADDR_ANY;
-	CHILD_REQUIRE(bind(sfd, (const struct sockaddr *)&addr,
+	addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+	ATF_REQUIRE(bind(sfd, (const struct sockaddr *)&addr,
 	    sizeof(addr)) != -1);
 
 	ATF_REQUIRE((pid = fork()) != -1);
@@ -409,7 +408,7 @@ ATF_TC_BODY(ktrace__cap_sockaddr, tc)
 	saddr = (struct sockaddr_in *)&violation.cap_data.cap_sockaddr;
 	ATF_REQUIRE_EQ(saddr->sin_family, AF_INET);
 	ATF_REQUIRE_EQ(saddr->sin_port, htons(5000));
-	ATF_REQUIRE_EQ(saddr->sin_addr.s_addr, INADDR_ANY);
+	ATF_REQUIRE_EQ(saddr->sin_addr.s_addr, htonl(INADDR_LOOPBACK));
 	close(sfd);
 }