From: Rich Felker Date: Sat, 2 Nov 2013 08:07:12 +0000 (-0400) Subject: fix regression in inet_aton due to misinterpretation of __ipparse return X-Git-Tag: v0.9.15~74 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=7b5beabceb3ae644acf793a249bbf564faf1ebe6;p=oweals%2Fmusl.git fix regression in inet_aton due to misinterpretation of __ipparse return inet_aton returns a boolean success value, whereas __ipparse returns 0 on success and -1 on failure. also change the conditional in inet_addr to be consistent with other uses of __ipparse where only negative values are treated as failure. --- diff --git a/src/network/inet_addr.c b/src/network/inet_addr.c index 84137281..ea0a8f7a 100644 --- a/src/network/inet_addr.c +++ b/src/network/inet_addr.c @@ -6,6 +6,6 @@ in_addr_t inet_addr(const char *p) { struct sockaddr_in sin; - if (__ipparse(&sin, AF_INET, p)) return -1; + if (__ipparse(&sin, AF_INET, p) < 0) return -1; return sin.sin_addr.s_addr; } diff --git a/src/network/inet_legacy.c b/src/network/inet_legacy.c index dd75420e..0a0ad6fc 100644 --- a/src/network/inet_legacy.c +++ b/src/network/inet_legacy.c @@ -11,9 +11,9 @@ in_addr_t inet_network(const char *p) int inet_aton(const char *cp, struct in_addr *inp) { struct sockaddr_in sin; - int r = __ipparse(&sin, AF_INET, cp); + if (__ipparse(&sin, AF_INET, cp) < 0) return 0; *inp = sin.sin_addr; - return r; + return 1; } struct in_addr inet_makeaddr(int net, int host)