1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00

version: skip idn2_check_version() check and add precaution

A gcc-10's -fanalyze complaint made me spot and do these improvements.

Closes #5281
This commit is contained in:
Daniel Stenberg 2020-04-22 11:21:24 +02:00
parent ae15bfc9ce
commit 3fdc4bdb5b
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -85,12 +85,15 @@ static size_t brotli_version(char *buf, size_t bufsz)
* generate the exact same string and never write any temporary data like
* zeros in the data.
*/
#define VERSION_PARTS 14 /* number of substrings we can concatenate */
char *curl_version(void)
{
static char out[300];
char *outp;
size_t outlen;
const char *src[14];
const char *src[VERSION_PARTS];
#ifdef USE_SSL
char ssl_version[200];
#endif
@ -103,7 +106,7 @@ char *curl_version(void)
#ifdef USE_ARES
char cares_version[40];
#endif
#if defined(USE_LIBIDN2) || defined(USE_WIN32_IDN)
#if defined(USE_LIBIDN2)
char idn_version[40];
#endif
#ifdef USE_LIBPSL
@ -156,14 +159,11 @@ char *curl_version(void)
src[i++] = cares_version;
#endif
#ifdef USE_LIBIDN2
if(idn2_check_version(IDN2_VERSION)) {
msnprintf(idn_version, sizeof(idn_version),
"libidn2/%s", idn2_check_version(NULL));
src[i++] = idn_version;
}
#elif defined(USE_WIN32_IDN)
msnprintf(idn_version, sizeof(idn_version), "WinIDN");
msnprintf(idn_version, sizeof(idn_version),
"libidn2/%s", idn2_check_version(NULL));
src[i++] = idn_version;
#elif defined(USE_WIN32_IDN)
src[i++] = (char *)"WinIDN";
#endif
#ifdef USE_LIBPSL
@ -208,6 +208,8 @@ char *curl_version(void)
}
#endif
DEBUGASSERT(i <= VERSION_PARTS);
outp = &out[0];
outlen = sizeof(out);
for(j = 0; j < i; j++) {