getaddrinfo stub: set sin_port

This commit is contained in:
Todd C. Miller
2023-04-26 16:27:34 -06:00
parent 2898c85119
commit d1f2452c08
2 changed files with 4 additions and 2 deletions

View File

@@ -104,7 +104,7 @@ sudo_getaddrinfo(
port = sudo_strtonum(servname, 0, USHRT_MAX, &errstr); port = sudo_strtonum(servname, 0, USHRT_MAX, &errstr);
if (errstr != NULL && errno == ERANGE) if (errstr != NULL && errno == ERANGE)
return EAI_SERVICE; return EAI_SERVICE;
if (flags & AI_NUMERICSERV) if (hints != NULL && ISSET(hints->ai_flags, AI_NUMERICSERV))
return EAI_NONAME; return EAI_NONAME;
servent = getservbyname(servname, "tcp"); servent = getservbyname(servname, "tcp");
if (servent == NULL) if (servent == NULL)
@@ -128,6 +128,7 @@ sudo_getaddrinfo(
inet_pton(AF_INET, "127.0.0.1", &addr); 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_family = AF_INET;
((struct sockaddr_in *)ai->ai_addr)->sin_addr = addr; ((struct sockaddr_in *)ai->ai_addr)->sin_addr = addr;
((struct sockaddr_in *)ai->ai_addr)->sin_port = htons(port);
*res = ai; *res = ai;
return 0; return 0;
} }

View File

@@ -207,7 +207,7 @@ sudo_getaddrinfo(
port = sudo_strtonum(servname, 0, USHRT_MAX, &errstr); port = sudo_strtonum(servname, 0, USHRT_MAX, &errstr);
if (errstr != NULL && errno == ERANGE) if (errstr != NULL && errno == ERANGE)
return EAI_SERVICE; return EAI_SERVICE;
if (flags & AI_NUMERICSERV) if (hints != NULL && ISSET(hints->ai_flags, AI_NUMERICSERV))
return EAI_NONAME; return EAI_NONAME;
servent = getservbyname(servname, "tcp"); servent = getservbyname(servname, "tcp");
if (servent == NULL) if (servent == NULL)
@@ -231,6 +231,7 @@ sudo_getaddrinfo(
inet_pton(AF_INET, "127.0.0.1", &addr); 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_family = AF_INET;
((struct sockaddr_in *)ai->ai_addr)->sin_addr = addr; ((struct sockaddr_in *)ai->ai_addr)->sin_addr = addr;
((struct sockaddr_in *)ai->ai_addr)->sin_port = htons(port);
*res = ai; *res = ai;
return 0; return 0;
} }