summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/libip/parseip.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/src/libip/parseip.c b/sys/src/libip/parseip.c
index 7856b4a6c..9f5d5dac7 100644
--- a/sys/src/libip/parseip.c
+++ b/sys/src/libip/parseip.c
@@ -74,6 +74,10 @@ parseip(uchar *to, char *from)
op = p;
x = strtoul(p, &p, 16);
if(*p == '.' || (*p == 0 && i == 0)){ /* ends with v4? */
+ if(i > IPaddrlen-4){
+ memset(to, 0, IPaddrlen);
+ return -1; /* parse error */
+ }
p = v4parseip(to+i, op);
i += 4;
break;