Skip to content

Commit

Permalink
telnet.c: check sscanf results before passing them to snprintf
Browse files Browse the repository at this point in the history
  • Loading branch information
mback2k committed Apr 19, 2014
1 parent f9ffbfc commit 662fc62
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions lib/telnet.c
Expand Up @@ -932,8 +932,8 @@ static void suboption(struct connectdata *conn)
size_t len;
size_t tmplen;
int err;
char varname[128];
char varval[128];
char varname[128] = "";
char varval[128] = "";
struct SessionHandle *data = conn->data;
struct TELNET *tn = (struct TELNET *)data->req.protop;

Expand Down Expand Up @@ -973,11 +973,12 @@ static void suboption(struct connectdata *conn)
tmplen = (strlen(v->data) + 1);
/* Add the variable only if it fits */
if(len + tmplen < (int)sizeof(temp)-6) {
sscanf(v->data, "%127[^,],%127s", varname, varval);
snprintf((char *)&temp[len], sizeof(temp) - len,
"%c%s%c%s", CURL_NEW_ENV_VAR, varname,
CURL_NEW_ENV_VALUE, varval);
len += tmplen;
if(sscanf(v->data, "%127[^,],%127s", varname, varval)) {
snprintf((char *)&temp[len], sizeof(temp) - len,
"%c%s%c%s", CURL_NEW_ENV_VAR, varname,
CURL_NEW_ENV_VALUE, varval);
len += tmplen;
}
}
}
snprintf((char *)&temp[len], sizeof(temp) - len,
Expand Down

0 comments on commit 662fc62

Please sign in to comment.