]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
inet_ntop: avoid the strlen()
authorDaniel Stenberg <daniel@haxx.se>
Thu, 1 Jan 2026 11:45:45 +0000 (12:45 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 1 Jan 2026 17:06:39 +0000 (18:06 +0100)
Also, skip adding the terminating null that is not used.

Closes #20139

lib/curlx/inet_ntop.c

index 6b4472bab2ad49fd6253068dbbc0b0e297ee7aa3..6bea5e1db6ac852a5ce5746e7510980229c394ce 100644 (file)
@@ -181,10 +181,9 @@ static char *inet_ntop6(const unsigned char *src, char *dst, size_t size)
    */
   if(best.base != -1 && (best.base + best.len) == (IN6ADDRSZ / INT16SZ))
     *tp++ = ':';
-  *tp++ = '\0';
 
   /* Check for overflow, copy, and we are done. */
-  if((size_t)(tp - tmp) > size) {
+  if((size_t)(tp - tmp) >= size) {
 #ifdef USE_WINSOCK
     errno = WSAEINVAL;
 #else
@@ -193,7 +192,7 @@ static char *inet_ntop6(const unsigned char *src, char *dst, size_t size)
     return NULL;
   }
 
-  curlx_strcopy(dst, size, tmp, strlen(tmp));
+  curlx_strcopy(dst, size, tmp, tp - tmp);
   return dst;
 }