Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [Bug 3606139]: missing error check allows regexp to crash Tcl. Thanks to Tom Lane for providing the test-case and the patch. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
859928772a0eef4554755acbe9cb912b |
User & Date: | jan.nijtmans 2013-02-27 08:12:33 |
Context
2013-02-27
| ||
13:23 | Wrap test-case over multiple lines check-in: 61a68a853a user: jan.nijtmans tags: core-8-5-branch | |
08:19 | [Bug 3606139]: missing error check allows regexp to crash Tcl. Thanks to Tom Lane for providing the ... check-in: 3cb628fa5e user: jan.nijtmans tags: trunk | |
08:12 | [Bug 3606139]: missing error check allows regexp to crash Tcl. Thanks to Tom Lane for providing the ... check-in: 859928772a user: jan.nijtmans tags: core-8-5-branch | |
08:02 | [Bug 3606139]: missing error check allows regexp to crash Tcl. Thanks to Tom Lane for providing the ... check-in: bb1ca6484d user: jan.nijtmans tags: core-8-4-branch | |
2013-02-26
| ||
17:37 | structs *ChannelHandler* GetsState CopyState used only locally. Remove from tclIO.h. check-in: cee6202b4c user: dgp tags: core-8-5-branch | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2013-02-26 Jan Nijtmans <[email protected]> * generic/tclObj.c: Don't panic if Tcl_ConvertToType is called for a type that doesn't have a setFromAnyProc, create a proper error message. 2013-02-25 Don Porter <[email protected]> | > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 | 2013-02-27 Jan Nijtmans <[email protected]> * generic/regcomp.c: [Bug 3606139]: missing error check allows * tests/regexp.test: regexp to crash Tcl. Thanks to Tom Lane for providing the test-case and the patch. 2013-02-26 Jan Nijtmans <[email protected]> * generic/tclObj.c: Don't panic if Tcl_ConvertToType is called for a type that doesn't have a setFromAnyProc, create a proper error message. 2013-02-25 Don Porter <[email protected]> |
︙ | ︙ |
Changes to generic/regcomp.c.
︙ | ︙ | |||
734 735 736 737 738 739 740 741 742 743 744 745 746 747 | NOERRN(); moveins(v->nfa, right, lp); } seencontent = 1; /* NB, recursion in parseqatom() may swallow rest of branch */ parseqatom(v, stopper, type, lp, right, t); } if (!seencontent) { /* empty branch */ if (!partial) { NOTE(REG_UUNSPEC); } assert(lp == left); | > | 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 | NOERRN(); moveins(v->nfa, right, lp); } seencontent = 1; /* NB, recursion in parseqatom() may swallow rest of branch */ parseqatom(v, stopper, type, lp, right, t); NOERRN(); } if (!seencontent) { /* empty branch */ if (!partial) { NOTE(REG_UUNSPEC); } assert(lp == left); |
︙ | ︙ | |||
1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 | t = top->right; if (!(SEE('|') || SEE(stopper) || SEE(EOS))) { t->right = parsebranch(v, stopper, type, atom->end, rp, 1); } else { EMPTYARC(atom->end, rp); t->right = subre(v, '=', 0, atom->end, rp); } assert(SEE('|') || SEE(stopper) || SEE(EOS)); t->flags |= COMBINE(t->flags, t->right->flags); top->flags |= COMBINE(top->flags, t->flags); } /* - nonword - generate arcs for non-word-character ahead or behind | > | 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 | t = top->right; if (!(SEE('|') || SEE(stopper) || SEE(EOS))) { t->right = parsebranch(v, stopper, type, atom->end, rp, 1); } else { EMPTYARC(atom->end, rp); t->right = subre(v, '=', 0, atom->end, rp); } NOERR(); assert(SEE('|') || SEE(stopper) || SEE(EOS)); t->flags |= COMBINE(t->flags, t->right->flags); top->flags |= COMBINE(top->flags, t->flags); } /* - nonword - generate arcs for non-word-character ahead or behind |
︙ | ︙ |
Changes to tests/regexp.test.
cannot compute difference between binary files