Fix memory corruption manifested on 32 bit binaries (#58)

* Don't update gototab entries for HAT (corrupts memory)
This commit is contained in:
zoulasc 2019-12-09 02:00:45 -05:00 committed by Arnold Robbins
parent 416c6db5ee
commit af86dacfad

6
b.c
View File

@ -1273,7 +1273,8 @@ int cgoto(fa *f, int s, int c)
if (tmpset[j] != p[j])
goto different;
/* setvec is state i */
f->gototab[s][c] = i;
if (c != HAT)
f->gototab[s][c] = i;
return i;
different:;
}
@ -1287,7 +1288,8 @@ int cgoto(fa *f, int s, int c)
p = intalloc(setcnt + 1, __func__);
f->posns[f->curstat] = p;
f->gototab[s][c] = f->curstat;
if (c != HAT)
f->gototab[s][c] = f->curstat;
for (i = 0; i <= setcnt; i++)
p[i] = tmpset[i];
if (setvec[f->accept])