diff options
author | Todd C. Miller <Todd.Miller@sudo.ws> | 2023-04-26 16:27:34 -0600 |
---|---|---|
committer | Todd C. Miller <Todd.Miller@sudo.ws> | 2023-04-26 16:27:34 -0600 |
commit | 2f5df72b2371385be1393e759425328c7453acf3 (patch) | |
tree | 80ab5e3be7db5284912c772499fc1dd05a0438a0 | |
parent | 28f4506ea2d2beaa12d9492ad18249a8d99460ab (diff) | |
download | sudo-2f5df72b2371385be1393e759425328c7453acf3.tar.gz |
getaddrinfo stub: set sin_port
-rw-r--r-- | logsrvd/regress/fuzz/fuzz_logsrvd_conf.c | 3 | ||||
-rw-r--r-- | plugins/sudoers/regress/fuzz/fuzz_policy.c | 3 |
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; } |