소스 검색

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 11 년 전
부모
커밋
f9dd79c8d1
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  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);