Try to fix reading freed memory in eval.c.
This occurred when the null term was reached - the token was freed, but no error was thrown (it's just the end of the string), so the program attempted to increment the index using freed token data.
This commit is contained in:
parent
eb4204fe76
commit
2f65eda7bd
|
@ -209,7 +209,7 @@ liblex_result eval_all(char* string, int index, eval_config* config, ll* matches
|
||||||
result = ll_append(matches, new_match) == LIBDS_SUCCESS ? LIBLEX_SUCCESS : LIBLEX_MALLOC;
|
result = ll_append(matches, new_match) == LIBDS_SUCCESS ? LIBLEX_SUCCESS : LIBLEX_MALLOC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(result == LIBLEX_SUCCESS){
|
if(result == LIBLEX_SUCCESS && string[index] != '\0'){
|
||||||
index += new_match->to - new_match->from;
|
index += new_match->to - new_match->from;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user