diff options
author | David Mitchell <davem@iabyn.com> | 2010-10-31 11:50:16 +0000 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2010-10-31 11:54:02 +0000 |
commit | 64dc9714ea644685eed378d21d3784602e1333e9 (patch) | |
tree | 596f50140a33b150ecddf98ccf2de43ee332eb56 /sv.c | |
parent | 5dfff8f3f610de1f338ad0c0b33fd879e96e9497 (diff) | |
download | perl-64dc9714ea644685eed378d21d3784602e1333e9.tar.gz |
RT 72246: rcatline memory leak on bad $/
When allocating a temporary SV, make sure it will get freed if we die.
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -7338,11 +7338,13 @@ Perl_sv_gets(pTHX_ register SV *const sv, register PerlIO *const fp, I32 append) } } else if (SvUTF8(sv)) { SV * const tsv = newSV(0); + ENTER; + SAVEFREESV(tsv); sv_gets(tsv, fp, 0); sv_utf8_upgrade_nomg(tsv); SvCUR_set(sv,append); sv_catsv(sv,tsv); - sv_free(tsv); + LEAVE; goto return_string_or_null; } } |