1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

Fix oob read of one byte in get_file_params_count{,_resume}

We can use continue to handle cases such as:
"ab<space><space>c"
This commit is contained in:
Joseph Bisch 2017-05-29 14:43:24 -04:00
parent 10cea61696
commit 30a92754bb
No known key found for this signature in database
GPG Key ID: CF08FAC339AB7E8E
2 changed files with 4 additions and 0 deletions

View File

@ -382,6 +382,8 @@ int get_file_params_count(char **params, int paramcount)
if (*params[0] == '"') { if (*params[0] == '"') {
/* quoted file name? */ /* quoted file name? */
for (pos = 0; pos < paramcount-3; pos++) { for (pos = 0; pos < paramcount-3; pos++) {
if (strlen(params[pos]) == 0)
continue;
if (params[pos][strlen(params[pos])-1] == '"' && if (params[pos][strlen(params[pos])-1] == '"' &&
get_params_match(params, pos+1)) get_params_match(params, pos+1))
return pos+1; return pos+1;

View File

@ -62,6 +62,8 @@ int get_file_params_count_resume(char **params, int paramcount)
if (*params[0] == '"') { if (*params[0] == '"') {
/* quoted file name? */ /* quoted file name? */
for (pos = 0; pos < paramcount-2; pos++) { for (pos = 0; pos < paramcount-2; pos++) {
if (strlen(params[pos]) == 0)
continue;
if (params[pos][strlen(params[pos])-1] == '"' && if (params[pos][strlen(params[pos])-1] == '"' &&
get_params_match_resume(params, pos+1)) get_params_match_resume(params, pos+1))
return pos+1; return pos+1;