inet_ntop: avoid the strlen()

Also, skip adding the terminating null that is not used.

Closes #20139
This commit is contained in:
Daniel Stenberg 2026-01-01 12:45:45 +01:00
parent d3eddf4761
commit f7d8725a55
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View 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;
}