summaryrefslogtreecommitdiffstats
path: root/generic/regcomp.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2015-08-17 18:22:18 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2015-08-17 18:22:18 (GMT)
commit2ef36c8edb60b8da26aeb9947f6d2cdd1d4bf6c1 (patch)
tree8e721b0330c2757bffcc01d1738789dfce9d8ea1 /generic/regcomp.c
parent07ee24f589ea3b7d220a8fa59fc23481062a2c12 (diff)
downloadtcl-2ef36c8edb60b8da26aeb9947f6d2cdd1d4bf6c1.zip
tcl-2ef36c8edb60b8da26aeb9947f6d2cdd1d4bf6c1.tar.gz
tcl-2ef36c8edb60b8da26aeb9947f6d2cdd1d4bf6c1.tar.bz2
[818a1a51e4] Apply fixes from Andreas Seltenreich (reported to us by Tom Lane) for handling low memory situations. Should not be reachable in Tcl due to ckalloc() panic policy.
Diffstat (limited to 'generic/regcomp.c')
-rw-r--r--generic/regcomp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/generic/regcomp.c b/generic/regcomp.c
index 77f2f20..d23076b 100644
--- a/generic/regcomp.c
+++ b/generic/regcomp.c
@@ -982,6 +982,7 @@ parseqatom(
NOERR();
assert(v->nextvalue > 0);
atom = subre(v, 'b', BACKR, lp, rp);
+ NOERR();
subno = v->nextvalue;
atom->subno = subno;
EMPTYARC(lp, rp); /* temporarily, so there's something */
@@ -1129,6 +1130,7 @@ parseqatom(
*/
t = subre(v, '.', COMBINE(qprefer, atom->flags), lp, rp);
+ NOERR();
t->left = atom;
atomp = &t->left;
@@ -1142,6 +1144,7 @@ parseqatom(
assert(top->op == '=' && top->left == NULL && top->right == NULL);
top->left = subre(v, '=', top->flags, top->begin, lp);
+ NOERR();
top->op = '.';
top->right = t;