This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #118139] Storable 2.42 - die in global destruction
authorReini Urban <rurban@x-ray.at>
Tue, 28 May 2013 20:46:12 +0000 (22:46 +0200)
committerAbhijit Menon-Sen <ams@toroid.org>
Sat, 13 Jul 2013 16:44:59 +0000 (22:14 +0530)
Protect against SEGV during global destruction, e.g. when used
in DESTROY blocks.

[Part of a patch submitted by Reini. MANIFEST change added by the committer]

MANIFEST
dist/Storable/ChangeLog
dist/Storable/Storable.pm
dist/Storable/t/destroy.t [new file with mode: 0644]

index bb086c8..a676881 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3322,6 +3322,7 @@ dist/Storable/t/compat01.t                See if Storable works
 dist/Storable/t/compat06.t             See if Storable works
 dist/Storable/t/croak.t                        See if Storable works
 dist/Storable/t/dclone.t               See if Storable works
+dist/Storable/t/destroy.t              Test Storable in global destructon
 dist/Storable/t/downgrade.t            See if Storable works
 dist/Storable/t/file_magic.t           See if file_magic function works
 dist/Storable/t/forgive.t              See if Storable works
index 31e1b0c..ceaf128 100644 (file)
@@ -1,4 +1,21 @@
-?
+Thu May 23 09:59:33 CDT 2013    Reini Urban <rurban@cpanel.net>
+
+        Protect against SEGV during global destruction when used
+        in DESTROY blocks [perl #118139].
+        Compatibility fixes back to 5.6.
+
+Wed May 8 18:27:42 2013 -0600 Karl Williamson <public@khwilliamson.com>
+    Version 2.42
+
+        Remove core references to SVt_BIND (no changes)
+
+Sat Apr 13 17:45:10 2013 +0100 James E Keenan <jkeenan@cpan.org>
+    Version 2.41
+
+        Update INSTALLDIRS to favor installation under 'site'
+        (no changes)
+
+Fri Nov 30 23:03:09 2012 -0500 Steffen Mueller <smueller@cpan.org>
     Version 2.40
 
        Security warnings section added
index 8f5f7b0..7afa391 100644 (file)
@@ -1,5 +1,6 @@
 #
-#  Copyright (c) 1995-2000, Raphael Manfredi
+#  Copyright (c) 1995-2001, Raphael Manfredi
+#  Copyright (c) 2002-2013 by the Perl 5 Porters
 #  
 #  You may redistribute only under the same terms as Perl 5, as specified
 #  in the README file that comes with the distribution.
@@ -1192,7 +1193,8 @@ Thank you to (in chronological order):
        Salvador Ortiz Garcia <sog@msg.com.mx>
        Dominic Dunlop <domo@computer.org>
        Erik Haugan <erik@solbors.no>
-    Benjamin A. Holzman <ben.holzman@grantstreet.com>
+       Benjamin A. Holzman <ben.holzman@grantstreet.com>
+       Reini Urban <rurban@cpanel.net>
 
 for their bug reports, suggestions and contributions.
 
diff --git a/dist/Storable/t/destroy.t b/dist/Storable/t/destroy.t
new file mode 100644 (file)
index 0000000..c28ba25
--- /dev/null
@@ -0,0 +1,21 @@
+# [perl #118139] crash in global destruction when accessing an
+# already freed PL_modglobal or accessing the freed cxt.
+use Test;
+use Storable;
+BEGIN {
+  plan tests => 1;
+  store {}, "foo";
+}
+package foo;
+sub new { return bless {} }
+DESTROY {
+  open $fh, "<", "foo";
+  eval { Storable::pretrieve($fh); };
+  unlink "foo";
+}
+
+package main;
+# print "# $^X\n";
+$x = foo->new();
+
+ok(1);