diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-12-23 14:28:33 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-12-23 14:45:55 -0800 |
commit | 190e89f069481aa08def70f73170ade1d6d1fca9 (patch) | |
tree | 49bce15d1828829087717ef3ec4a3e056de5147f /gv.c | |
parent | 0b7a369cae77008a12eaaee38c4a63fd344fca22 (diff) | |
download | perl-190e89f069481aa08def70f73170ade1d6d1fca9.tar.gz |
Don’t clobber all magic when clobbering vstring
This code in sv_setsv, introduced in ece467f9b3, can’t possi-
bly be right:
if ( SvVOK(dstr) )
{
/* need to nuke the magic */
mg_free(dstr);
}
And here is a test to prove it:
sub TIESCALAR { bless[]}
sub STORE {}
tie $@, "";
$@ = v0;
warn tied $@; # main=ARRAY(0xc0ffee)
$@ = 3;
warn tied $@; # something’s wrong
It blows away tiedness.
You could do that to any variable.
Let’s see:
$! = v0;
$! = 3;
open foo, 'oentuhaeontu' or die $!; # 3 at - line 3.
Youch!
Let’s just free vstring magic, shall we?
Diffstat (limited to 'gv.c')
0 files changed, 0 insertions, 0 deletions