From af86dacfad85857b2ea9fa95150ddd8c671695ed Mon Sep 17 00:00:00 2001 From: zoulasc Date: Mon, 9 Dec 2019 02:00:45 -0500 Subject: [PATCH] Fix memory corruption manifested on 32 bit binaries (#58) * Don't update gototab entries for HAT (corrupts memory) --- b.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/b.c b/b.c index 407e622..1e53652 100644 --- a/b.c +++ b/b.c @@ -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])