[fix crash in regexec.c]
Larry Wall [Wed, 11 Jan 1995 22:06:42 +0000 (14:06 -0800)]
In article <3ekgoo@giga.bga.com> jamshid@ses.com (Jamshid Afshar) writes:
: I'm getting some unexpected behavior for a small perl script on SunOS
: 4.1.3 perl 4.0p36.  The same script crashes under perl 5.0 on HP-UX.
: That script is at the end of this article -- it's as small as I could
: make it and still reproduce the crash.

Here's an unofficial patch for the problem in Perl 5.

Larry

regexec.c

index 1267065..3992aaf 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -471,10 +471,10 @@ I32 safebase;     /* no need to remember string in subbase */
     goto phooey;
 
 got_it:
+    strend += dontbother;      /* uncheat */
     prog->subbeg = strbeg;
     prog->subend = strend;
     if ((!safebase && (prog->nparens || sawampersand)) || prog->do_folding) {
-       strend += dontbother;   /* uncheat */
        i = strend - startpos + (stringarg - strbeg);
        if (safebase) {                 /* no need for $digit later */
            s = strbeg;