mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 09:21:50 -05:00
telnet.c: check sscanf results before passing them to snprintf
This commit is contained in:
parent
f9ffbfce90
commit
662fc62517
15
lib/telnet.c
15
lib/telnet.c
@ -932,8 +932,8 @@ static void suboption(struct connectdata *conn)
|
|||||||
size_t len;
|
size_t len;
|
||||||
size_t tmplen;
|
size_t tmplen;
|
||||||
int err;
|
int err;
|
||||||
char varname[128];
|
char varname[128] = "";
|
||||||
char varval[128];
|
char varval[128] = "";
|
||||||
struct SessionHandle *data = conn->data;
|
struct SessionHandle *data = conn->data;
|
||||||
struct TELNET *tn = (struct TELNET *)data->req.protop;
|
struct TELNET *tn = (struct TELNET *)data->req.protop;
|
||||||
|
|
||||||
@ -973,11 +973,12 @@ static void suboption(struct connectdata *conn)
|
|||||||
tmplen = (strlen(v->data) + 1);
|
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) {
|
||||||
sscanf(v->data, "%127[^,],%127s", varname, varval);
|
if(sscanf(v->data, "%127[^,],%127s", varname, varval)) {
|
||||||
snprintf((char *)&temp[len], sizeof(temp) - len,
|
snprintf((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);
|
||||||
len += tmplen;
|
len += tmplen;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
snprintf((char *)&temp[len], sizeof(temp) - len,
|
snprintf((char *)&temp[len], sizeof(temp) - len,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user