Change 20630 by [EMAIL PROTECTED] on 2003/08/12 07:59:22
Fix for [perl #23287] segfault in untie.
(Well, at least no more coredump.)
Affected files ...
... //depot/perl/pp_sys.c#347 edit
... //depot/perl/t/op/tie.t#33 edit
Differences ...
==== //depot/perl/pp_sys.c#347 (text) ====
Index: perl/pp_sys.c
--- perl/pp_sys.c#346~19910~ Tue Jul 1 04:18:27 2003
+++ perl/pp_sys.c Tue Aug 12 00:59:22 2003
@@ -860,7 +860,7 @@
if (SvTYPE(sv) == SVt_PVGV && !(sv = (SV *)GvIOp(sv)))
RETPUSHYES;
- if ((mg = SvTIED_mg(sv, how))) {
+ if ((mg = SvTIED_mg(sv, how)) && mg->mg_obj) {
SV *obj = SvRV(mg->mg_obj);
GV *gv;
CV *cv = NULL;
==== //depot/perl/t/op/tie.t#33 (xtext) ====
Index: perl/t/op/tie.t
--- perl/t/op/tie.t#32~20199~ Thu Jul 24 06:04:24 2003
+++ perl/t/op/tie.t Tue Aug 12 00:59:22 2003
@@ -360,3 +360,10 @@
print $s, "\n";
EXPECT
SCALAR SCALAR SCALAR SCALAR
+########
+# [perl #23287] segfault in untie
+sub TIESCALAR { bless $_[1], $_[0] }
+my $var;
+tie $var, 'main', \$var;
+untie $var;
+EXPECT
End of Patch.