diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-06-28 07:24:07 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-06-28 07:24:07 +1000 |
commit | 6ad813f67cad987471e4ab607e69e5dbaa74082a (patch) | |
tree | 90ecb523d1a43a5c95159c7e891cc3fffa33151b /autosetup/jimsh0.c | |
parent | 04215dbf0b2f002bba05c91a1d4690aae0d671b7 (diff) | |
download | jimtcl-6ad813f67cad987471e4ab607e69e5dbaa74082a.zip jimtcl-6ad813f67cad987471e4ab607e69e5dbaa74082a.tar.gz jimtcl-6ad813f67cad987471e4ab607e69e5dbaa74082a.tar.bz2 |
Fix builtin regexp for memory overwrite
Reported-By: Spencer Oliver <spen@spen-soft.co.uk>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'autosetup/jimsh0.c')
-rw-r--r-- | autosetup/jimsh0.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/autosetup/jimsh0.c b/autosetup/jimsh0.c index 49b0ed8..c2e9435 100644 --- a/autosetup/jimsh0.c +++ b/autosetup/jimsh0.c @@ -22317,9 +22317,11 @@ static int *regpiece(regex_t *preg, int *flagp) else { next = reginsert(preg, flags & SIMPLE ? REP: REPX, 5, ret); } - ret[2] = max; - ret[3] = min; - ret[4] = 0; + if (preg->regcode != ®dummy) { + ret[2] = max; + ret[3] = min; + ret[4] = 0; + } *flagp = (min) ? (WORST|HASWIDTH) : (WORST|SPSTART); |