This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Re: [perl #20408] SV's SvPVX get freed even when its SvLEN is zero
[perl5.git]
/
pp_ctl.c
diff --git
a/pp_ctl.c
b/pp_ctl.c
index
ed392cc
..
1a3fd1d
100644
(file)
--- a/
pp_ctl.c
+++ b/
pp_ctl.c
@@
-182,7
+182,8
@@
PP(pp_substcont)
cx->sb_rxtainted |= RX_MATCH_TAINTED(rx);
(void)SvOOK_off(targ);
cx->sb_rxtainted |= RX_MATCH_TAINTED(rx);
(void)SvOOK_off(targ);
- Safefree(SvPVX(targ));
+ if (SvLEN(targ))
+ Safefree(SvPVX(targ));
SvPVX(targ) = SvPVX(dstr);
SvCUR_set(targ, SvCUR(dstr));
SvLEN_set(targ, SvLEN(dstr));
SvPVX(targ) = SvPVX(dstr);
SvCUR_set(targ, SvCUR(dstr));
SvLEN_set(targ, SvLEN(dstr));