summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorFuji, Goro <g.psy.va@gmail.com>2012-07-31 21:56:11 +0900
committerFather Chrysostomos <sprout@cpan.org>2012-07-31 22:12:05 -0700
commitc50bda7c602d34fbc8752fc972be6f3050164834 (patch)
tree529df3e33529719d27a667676024af8e3999a368 /sv.c
parentcfb8f080895a44c06733a04064300a07f255aeb0 (diff)
downloadperl-c50bda7c602d34fbc8752fc972be6f3050164834.tar.gz
fix a memory leak in sv_sethek(), amending 70b71ec84
the following code reproduced this issue on perl 5.16.0: my $o = bless {}; while (1) { for my $r([], $o) { ref $r; } }
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sv.c b/sv.c
index 1bccaae75a..b0eaf92304 100644
--- a/sv.c
+++ b/sv.c
@@ -4553,6 +4553,7 @@ Perl_sv_sethek(pTHX_ register SV *const sv, const HEK *const hek)
{
SV_CHECK_THINKFIRST_COW_DROP(sv);
SvUPGRADE(sv, SVt_PV);
+ Safefree(SvPVX(sv));
SvPV_set(sv,(char *)HEK_KEY(share_hek_hek(hek)));
SvCUR_set(sv, HEK_LEN(hek));
SvLEN_set(sv, 0);