From: Paul Jakma Date: Sat, 8 Aug 2009 19:41:39 +0000 (+0100) Subject: lib/trivial: str2prefix checks return of inet_pton in fragile way X-Git-Tag: frr-2.0-rc1~2206 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=c4cf095e95ae66c1a7b87bca95e61e50fec746ee;p=mirror%2Ffrr.git lib/trivial: str2prefix checks return of inet_pton in fragile way * prefix.c: (str2prefix_ipv6) inet_pton succesful return is presumed to be 1, rather than the "not zero" the man page describes - seemed fragile. --- diff --git a/lib/prefix.c b/lib/prefix.c index c6922036b1..2afaa09c76 100644 --- a/lib/prefix.c +++ b/lib/prefix.c @@ -379,7 +379,7 @@ str2prefix_ipv6 (const char *str, struct prefix_ipv6 *p) if (pnt == NULL) { ret = inet_pton (AF_INET6, str, &p->prefix); - if (ret != 1) + if (ret == 0) return 0; p->prefixlen = IPV6_MAX_BITLEN; } @@ -392,7 +392,7 @@ str2prefix_ipv6 (const char *str, struct prefix_ipv6 *p) *(cp + (pnt - str)) = '\0'; ret = inet_pton (AF_INET6, cp, &p->prefix); free (cp); - if (ret != 1) + if (ret == 0) return 0; plen = (u_char) atoi (++pnt); if (plen > 128)