summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sv.c b/sv.c
index de8f973fb7..02e83a1d02 100644
--- a/sv.c
+++ b/sv.c
@@ -6990,6 +6990,8 @@ Perl_newSVpvn_share(pTHX_ const char *src, I32 len, U32 hash)
dVAR;
register SV *sv;
bool is_utf8 = FALSE;
+ const char *const orig_src = src;
+
if (len < 0) {
STRLEN tmplen = -len;
is_utf8 = TRUE;
@@ -7009,6 +7011,8 @@ Perl_newSVpvn_share(pTHX_ const char *src, I32 len, U32 hash)
SvPOK_on(sv);
if (is_utf8)
SvUTF8_on(sv);
+ if (src != orig_src)
+ Safefree(src);
return sv;
}