Fix re.NOSUB memory error

This commit is contained in:
Danny Robinson 2022-10-02 20:34:53 +01:00
parent 7549a5755e
commit c285b8c70b

View file

@ -62,6 +62,8 @@ static int LuaReSearchImpl(lua_State *L, regex_t *r, const char *s, int f) {
luaL_Buffer tmp; luaL_Buffer tmp;
n = 1 + r->re_nsub; n = 1 + r->re_nsub;
m = (regmatch_t *)luaL_buffinitsize(L, &tmp, n * sizeof(regmatch_t)); m = (regmatch_t *)luaL_buffinitsize(L, &tmp, n * sizeof(regmatch_t));
m->rm_so = 0;
m->rm_eo = 0;
if ((rc = regexec(r, s, n, m, f >> 8)) == REG_OK) { if ((rc = regexec(r, s, n, m, f >> 8)) == REG_OK) {
for (i = 0; i < n; ++i) { for (i = 0; i < n; ++i) {
lua_pushlstring(L, s + m[i].rm_so, m[i].rm_eo - m[i].rm_so); lua_pushlstring(L, s + m[i].rm_so, m[i].rm_eo - m[i].rm_so);