telnet: check sscanf() for correct number of matches

CVE-2021-22898

Bug: https://curl.se/docs/CVE-2021-22898.html
This commit is contained in:
Harry Sintonen 2021-05-07 13:09:57 +02:00 committed by Daniel Stenberg
parent bbb71507b7
commit 39ce47f219
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -922,7 +922,7 @@ static void suboption(struct Curl_easy *data)
size_t tmplen = (strlen(v->data) + 1); size_t tmplen = (strlen(v->data) + 1);
/* Add the variable only if it fits */ /* Add the variable only if it fits */
if(len + tmplen < (int)sizeof(temp)-6) { if(len + tmplen < (int)sizeof(temp)-6) {
if(sscanf(v->data, "%127[^,],%127s", varname, varval)) { if(sscanf(v->data, "%127[^,],%127s", varname, varval) == 2) {
msnprintf((char *)&temp[len], sizeof(temp) - len, msnprintf((char *)&temp[len], sizeof(temp) - len,
"%c%s%c%s", CURL_NEW_ENV_VAR, varname, "%c%s%c%s", CURL_NEW_ENV_VAR, varname,
CURL_NEW_ENV_VALUE, varval); CURL_NEW_ENV_VALUE, varval);