瀏覽代碼

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);