Change 28248 by [EMAIL PROTECTED] on 2006/05/20 00:43:42 [perl #32041] SEGV with complicated regexp and long string PL_reg_maxiter was wrapping to a negative value
Affected files ... ... //depot/perl/op.c#823 edit ... //depot/perl/regexec.c#423 edit Differences ... ==== //depot/perl/regexec.c#423 (text) ==== Index: perl/regexec.c --- perl/regexec.c#422~28206~ 2006-05-16 06:14:12.000000000 -0700 +++ perl/regexec.c 2006-05-19 17:43:42.000000000 -0700 @@ -3652,6 +3652,9 @@ *that* much linear. */ if (!PL_reg_maxiter) { PL_reg_maxiter = (PL_regeol - PL_bostr + 1) * (scan->flags>>4); + /* possible overflow for long strings and many CURLYX's */ + if (PL_reg_maxiter < 0) + PL_reg_maxiter = I32_MAX; PL_reg_leftiter = PL_reg_maxiter; } if (PL_reg_leftiter-- == 0) { End of Patch.