[Bug 849703] Regular Expression matching in signal handler causes side-effects

bugzilla at redhat.com bugzilla at redhat.com
Mon Oct 1 13:25:55 UTC 2012


https://bugzilla.redhat.com/show_bug.cgi?id=849703

Mark Phillips <markcsr at virginmedia.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |markcsr at virginmedia.com

--- Comment #3 from Mark Phillips <markcsr at virginmedia.com> ---
Unfortunately simply backporting the fix from 5.17 chagelist
b93070ed2e35b0430327cc866a4fcf4042014513 breaks binary compatibility
with plugins.

In particular after re-compiling and installing the Fedora 17 perl RPM
(perl-5.14.2-212.fc17.src.rpm), the automake package started crashing.
The regression tests were all ok.

I have tweaked the back-port to maintain compatibility in three areas (I
am not sure which are important) and now it maintains compatibility and
works with other pre-compiled perl 5.14.2 packages.

The areas I tweaked were:-
1) Modified regcppush/regcppop to push/pop the same values as before the
patch (in particular to still push/pop PL_regoffs, even though it is no
longer used).

2) Modified regcppush/regcppop to have the same prototype as before the
patch, except to make the argument to regcppop non-const. The pop code
writes to both rex and the (unused) PL_* variables.

3) Left the deprecrated PL variables in re_save_state so that the
interpretor object is unchanged - I suspect this is the critical change.

4) The PL_regoffs/PL_reglastparen/PL_reglastcloseparen variables are now
only used by regcppush. I have modified everywere regcppush is called to
set them correctly before regcppush...

I have attached the working patch which appears to pass regression
testing and allows a pre-compiled automake to work when using other
pre-compiled 5.14.2 libs.

-- 
You are receiving this mail because:
You are on the CC list for the bug.



More information about the perl-devel mailing list