Explorar o código

fix undefined strcpy call in inet_ntop

source and dest arguments for strcpy cannot overlap, so memmove must
be used here. the length is already known from the above loop.
Rich Felker %!s(int64=11) %!d(string=hai) anos
pai
achega
f9dd79c8d1
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      src/network/inet_ntop.c

+ 1 - 1
src/network/inet_ntop.c

@@ -40,7 +40,7 @@ const char *inet_ntop(int af, const void *restrict a0, char *restrict s, socklen
 		}
 		if (max>2) {
 			buf[best] = buf[best+1] = ':';
-			strcpy(buf+best+2, buf+best+max);
+			memmove(buf+best+2, buf+best+max, i-best-max+1);
 		}
 		if (strlen(buf) < l) {
 			strcpy(s, buf);