X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2Finet_pton.c;h=d36c368917da58c1689e42eba8b2e9ecbd22486e;hb=aa5a9d15e09851f7b4a1668e9dbde0f6234abada;hp=f840dd448d8b52a9e7072feaf1099203eeec9bd6;hpb=78f889153167452de4cbced921f6428b3d4f663a;p=musl diff --git a/src/network/inet_pton.c b/src/network/inet_pton.c index f840dd44..d36c3689 100644 --- a/src/network/inet_pton.c +++ b/src/network/inet_pton.c @@ -1,5 +1,4 @@ #include -#include #include #include #include @@ -40,14 +39,15 @@ int inet_pton(int af, const char *restrict s, void *restrict a0) for (i=0; ; i++) { if (s[0]==':' && brk<0) { brk=i; - ip[i]=0; + ip[i&7]=0; if (!*++s) break; + if (i==7) return 0; continue; } for (v=j=0; j<4 && (d=hexval(s[j]))>=0; j++) v=16*v+d; - if (j==0 || v > 65535) return 0; - ip[i] = v; + if (j==0) return 0; + ip[i&7] = v; if (!s[j] && (brk>=0 || i==7)) break; if (i==7) return 0; if (s[j]!=':') {