summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <Todd.Miller@sudo.ws>2023-04-26 16:27:34 -0600
committerTodd C. Miller <Todd.Miller@sudo.ws>2023-04-26 16:27:34 -0600
commit2f5df72b2371385be1393e759425328c7453acf3 (patch)
tree80ab5e3be7db5284912c772499fc1dd05a0438a0
parent28f4506ea2d2beaa12d9492ad18249a8d99460ab (diff)
downloadsudo-2f5df72b2371385be1393e759425328c7453acf3.tar.gz
getaddrinfo stub: set sin_port
-rw-r--r--logsrvd/regress/fuzz/fuzz_logsrvd_conf.c3
-rw-r--r--plugins/sudoers/regress/fuzz/fuzz_policy.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c b/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c
index 07d318e9c..afe1f2d8e 100644
--- a/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c
+++ b/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c
@@ -104,7 +104,7 @@ sudo_getaddrinfo(
port = sudo_strtonum(servname, 0, USHRT_MAX, &errstr);
if (errstr != NULL && errno == ERANGE)
return EAI_SERVICE;
- if (flags & AI_NUMERICSERV)
+ if (hints != NULL && ISSET(hints->ai_flags, AI_NUMERICSERV))
return EAI_NONAME;
servent = getservbyname(servname, "tcp");
if (servent == NULL)
@@ -128,6 +128,7 @@ sudo_getaddrinfo(
inet_pton(AF_INET, "127.0.0.1", &addr);
((struct sockaddr_in *)ai->ai_addr)->sin_family = AF_INET;
((struct sockaddr_in *)ai->ai_addr)->sin_addr = addr;
+ ((struct sockaddr_in *)ai->ai_addr)->sin_port = htons(port);
*res = ai;
return 0;
}
diff --git a/plugins/sudoers/regress/fuzz/fuzz_policy.c b/plugins/sudoers/regress/fuzz/fuzz_policy.c
index 9d84e6b9c..05cbd54e5 100644
--- a/plugins/sudoers/regress/fuzz/fuzz_policy.c
+++ b/plugins/sudoers/regress/fuzz/fuzz_policy.c
@@ -207,7 +207,7 @@ sudo_getaddrinfo(
port = sudo_strtonum(servname, 0, USHRT_MAX, &errstr);
if (errstr != NULL && errno == ERANGE)
return EAI_SERVICE;
- if (flags & AI_NUMERICSERV)
+ if (hints != NULL && ISSET(hints->ai_flags, AI_NUMERICSERV))
return EAI_NONAME;
servent = getservbyname(servname, "tcp");
if (servent == NULL)
@@ -231,6 +231,7 @@ sudo_getaddrinfo(
inet_pton(AF_INET, "127.0.0.1", &addr);
((struct sockaddr_in *)ai->ai_addr)->sin_family = AF_INET;
((struct sockaddr_in *)ai->ai_addr)->sin_addr = addr;
+ ((struct sockaddr_in *)ai->ai_addr)->sin_port = htons(port);
*res = ai;
return 0;
}