projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sem_open should make process-shared semaphores
[musl]
/
src
/
network
/
getaddrinfo.c
diff --git
a/src/network/getaddrinfo.c
b/src/network/getaddrinfo.c
index
8386216
..
b341912
100644
(file)
--- a/
src/network/getaddrinfo.c
+++ b/
src/network/getaddrinfo.c
@@
-47,7
+47,7
@@
struct aibuf {
/* Extra slots needed for storing canonical name */
#define EXTRA ((256+sizeof(struct aibuf)-1)/sizeof(struct aibuf))
/* Extra slots needed for storing canonical name */
#define EXTRA ((256+sizeof(struct aibuf)-1)/sizeof(struct aibuf))
-int getaddrinfo(const char *
host, const char *serv, const struct addrinfo *hint, struct addrinfo **
res)
+int getaddrinfo(const char *
restrict host, const char *restrict serv, const struct addrinfo *restrict hint, struct addrinfo **restrict
res)
{
int flags = hint ? hint->ai_flags : 0;
int family = hint ? hint->ai_family : AF_UNSPEC;
{
int flags = hint ? hint->ai_flags : 0;
int family = hint ? hint->ai_family : AF_UNSPEC;
@@
-76,8
+76,7
@@
int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
if (serv) {
if (!*serv) return EAI_SERVICE;
port = strtoul(serv, &z, 10);
if (serv) {
if (!*serv) return EAI_SERVICE;
port = strtoul(serv, &z, 10);
- if (!*z && port > 65535) return EAI_SERVICE;
- if (!port) {
+ if (*z) {
size_t servlen = strlen(serv);
char *end = line;
size_t servlen = strlen(serv);
char *end = line;
@@
-96,6
+95,7
@@
int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
__fclose_ca(f);
if (feof(f)) return EAI_SERVICE;
}
__fclose_ca(f);
if (feof(f)) return EAI_SERVICE;
}
+ if (port > 65535) return EAI_SERVICE;
port = htons(port);
}
port = htons(port);
}