fix debashify brace expansion segfault

This commit is contained in:
zawz 2021-11-06 19:18:29 +01:00
parent fab144947a
commit 44c03ca0be

View file

@ -980,7 +980,7 @@ bool debashify_brace_expansion(arglist_t* in, debashify_params* params)
{ {
bool has_replaced=false; bool has_replaced=false;
start: start:
for(uint32_t iarg=0; iarg<=in->args.size(); iarg++) for(uint32_t iarg=0; iarg<in->args.size(); iarg++)
{ {
// don't treat non-pure-string arguments for now // don't treat non-pure-string arguments for now
if(in->args[iarg] == nullptr || in->args[iarg]->sa.size() != 1 || in->args[iarg]->sa[0]->type != _obj::subarg_string) if(in->args[iarg] == nullptr || in->args[iarg]->sa.size() != 1 || in->args[iarg]->sa[0]->type != _obj::subarg_string)
@ -1089,12 +1089,12 @@ bool debashify_brace_expansion(arglist_t* in, debashify_params* params)
} break; } break;
case '\'': { case '\'': {
i++; i++;
while(val[i] != '\'') while(i<val.size() && val[i] != '\'')
i++; i++;
} break; } break;
case '"' : { case '"' : {
i++; i++;
while(val[i] != '"') { while(i<val.size() && val[i] != '"') {
if(val[i] == '\\') if(val[i] == '\\')
i++; i++;
i++; i++;