diff --git a/lib/inet_pton.c b/lib/inet_pton.c index db4f39307..967e30fb1 100644 --- a/lib/inet_pton.c +++ b/lib/inet_pton.c @@ -218,14 +218,14 @@ inet_pton6(const char *src, unsigned char *dst) * Since some memmove()'s erroneously fail to handle * overlapping regions, we'll do the shift by hand. */ - const size_t n = tp - colonp; - size_t i; + const ssize_t n = tp - colonp; + ssize_t i; if(tp == endp) return (0); for (i = 1; i <= n; i++) { - endp[- i] = colonp[n - i]; - colonp[n - i] = 0; + *(endp - i) = *(colonp + n - i); + *(colonp + n - i) = 0; } tp = endp; }