diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-10-18 17:35:06 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-10-18 17:35:06 +0000 |
commit | 29f4f0ab0cd22a86a6abeeb9b5de96d9506fd84a (patch) | |
tree | 0183f573a777d12318f1818605b079c1a58d4772 /sv.c | |
parent | 5df4b323ce05ce1c7f9261685804fb4bc7aadbce (diff) | |
download | perl-29f4f0ab0cd22a86a6abeeb9b5de96d9506fd84a.tar.gz |
panic if we attempt to sv_setsv to or from an already freed SV.
p4raw-id: //depot/perl@29040
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -3406,9 +3406,18 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV *sstr, I32 flags) if (sstr == dstr) return; + + if (SvIS_FREED(dstr)) { + Perl_croak(aTHX_ "panic: attempt to copy value %" SVf + " to a freed scalar %p", sstr, dstr); + } SV_CHECK_THINKFIRST_COW_DROP(dstr); if (!sstr) sstr = &PL_sv_undef; + if (SvIS_FREED(sstr)) { + Perl_croak(aTHX_ "panic: attempt to copy freed scalar %p to %p", sstr, + dstr); + } stype = SvTYPE(sstr); dtype = SvTYPE(dstr); |