Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 0c859ae7a568a1aba1dae5ed672de2f39ed6a662
https://github.com/Perl/perl5/commit/0c859ae7a568a1aba1dae5ed672de2f39ed6a662
Author: Tony Cook <[email protected]>
Date: 2025-04-19 (Sat, 19 Apr 2025)
Changed paths:
M embed.fnc
M embed.h
M proto.h
M regcomp.c
M regen/scope_types.pl
M scope.c
M scope.h
M scope_types.h
M sv.c
Log Message:
-----------
regcomp: handle cloning the rexc cleanup in the scope stack
Previous on Win32 this could cause a double-free of the RExC state if
an emulated fork was done with the free of the state on the scope
stack.
Use a custom save type and prevent freeing in the cloned process to
prevent the double-free.
Fixes #23022
Commit: fef3a42e5353a04ff75d36e1a61de00667b094e5
https://github.com/Perl/perl5/commit/fef3a42e5353a04ff75d36e1a61de00667b094e5
Author: Tony Cook <[email protected]>
Date: 2025-04-19 (Sat, 19 Apr 2025)
Changed paths:
M pod/perldelta.pod
Log Message:
-----------
perldelta for prevent duplicate free of RExC state
Commit: 349f8f5bca7dc8db069516e6b23bd4f5ce80ffb8
https://github.com/Perl/perl5/commit/349f8f5bca7dc8db069516e6b23bd4f5ce80ffb8
Author: Tony Cook <[email protected]>
Date: 2025-04-19 (Sat, 19 Apr 2025)
Changed paths:
M regcomp.c
Log Message:
-----------
regcomp: ensure the RExC_state freed earlier rather than later
388bf71 (ignoring #23022 for now) ensured that the RExC_state
and its controlled pointers were freed once and only once,
regardless of whether re_op_compile() returned normally or threw
an exception.
Unfortunately that free could happen very later, surviving well beyond
when the regexp was compiled.
Add an ENTER/LEAVE pair to ensure the cleanup is done immediately
on a normal return.
Compare: https://github.com/Perl/perl5/compare/a707dec8b10d...349f8f5bca7d
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications