diff --git a/lib/curl_gethostname.c b/lib/curl_gethostname.c index 7b28421275..617a8ad52f 100644 --- a/lib/curl_gethostname.c +++ b/lib/curl_gethostname.c @@ -59,7 +59,10 @@ int Curl_gethostname(char * const name, GETHOSTNAME_TYPE_ARG2 namelen) /* Override hostname when environment variable CURL_GETHOSTNAME is set */ const char *force_hostname = getenv("CURL_GETHOSTNAME"); if(force_hostname) { - strncpy(name, force_hostname, namelen - 1); + if(strlen(force_hostname) < (size_t)namelen) + strcpy(name, force_hostname); + else + return 1; /* can't do it */ err = 0; } else { diff --git a/lib/vtls/wolfssl.c b/lib/vtls/wolfssl.c index 2a65b3e156..bd7963ec3a 100644 --- a/lib/vtls/wolfssl.c +++ b/lib/vtls/wolfssl.c @@ -1176,15 +1176,15 @@ wolfssl_connect_step1(struct Curl_cfilter *cf, struct Curl_easy *data) static char *wolfssl_strerror(unsigned long error, char *buf, unsigned long size) { - DEBUGASSERT(size); + DEBUGASSERT(size > 40); *buf = '\0'; wolfSSL_ERR_error_string_n(error, buf, size); if(!*buf) { const char *msg = error ? "Unknown error" : "No error"; - strncpy(buf, msg, size - 1); - buf[size - 1] = '\0'; + /* the string fits because the assert above assures this */ + strcpy(buf, msg); } return buf;