|
|
7e35ac |
From 0452589669aed9ad06940de7c1620b340608868a Mon Sep 17 00:00:00 2001
|
|
|
7e35ac |
From: Jitka Plesnikova <jplesnik@redhat.com>
|
|
|
7e35ac |
Date: Mon, 1 Jun 2020 12:58:11 +0200
|
|
|
7e35ac |
Subject: [PATCH] Upgrade to 3.21
|
|
|
7e35ac |
|
|
|
7e35ac |
---
|
|
|
7e35ac |
ChangeLog | 33 ++++++++++++++++++-
|
|
|
7e35ac |
MANIFEST | 3 +-
|
|
|
7e35ac |
Makefile.PL | 59 +++++++++++++---------------------
|
|
|
7e35ac |
__Storable__.pm => Storable.pm | 23 +++++++------
|
|
|
7e35ac |
Storable.pm.PL | 35 --------------------
|
|
|
7e35ac |
Storable.xs | 20 ++++++++----
|
|
|
7e35ac |
stacksize | 2 +-
|
|
|
7e35ac |
t/attach_errors.t | 2 +-
|
|
|
7e35ac |
t/huge.t | 4 +--
|
|
|
7e35ac |
t/recurse.t | 4 +--
|
|
|
7e35ac |
t/regexp.t | 8 ++---
|
|
|
7e35ac |
11 files changed, 93 insertions(+), 100 deletions(-)
|
|
|
7e35ac |
rename __Storable__.pm => Storable.pm (99%)
|
|
|
7e35ac |
delete mode 100644 Storable.pm.PL
|
|
|
7e35ac |
|
|
|
7e35ac |
diff --git a/ChangeLog b/ChangeLog
|
|
|
7e35ac |
index 0488199..bf35381 100644
|
|
|
7e35ac |
--- a/ChangeLog
|
|
|
7e35ac |
+++ b/ChangeLog
|
|
|
7e35ac |
@@ -1,3 +1,34 @@
|
|
|
7e35ac |
+2010-01-27 10:27:00 TonyC
|
|
|
7e35ac |
+ version 3.20
|
|
|
7e35ac |
+ * fix a format string and arguments for some debugging text
|
|
|
7e35ac |
+ * linkify references to alternatives to Storable
|
|
|
7e35ac |
+
|
|
|
7e35ac |
+2020-01-27 11:01:00 TonyC
|
|
|
7e35ac |
+ version 3.19
|
|
|
7e35ac |
+ * add casts to match some I32 parameters to "%d" formats (#17339)
|
|
|
7e35ac |
+ * fix dependencies in Makefile.PL -> META (#17422)
|
|
|
7e35ac |
+ * make use of note() optional, this requires a newer version of
|
|
|
7e35ac |
+ Test::More and there's a circular dependency between later
|
|
|
7e35ac |
+ versions of Test::More and Storable (#17422)
|
|
|
7e35ac |
+
|
|
|
7e35ac |
+2019-11-19 07:59:39 TonyC
|
|
|
7e35ac |
+ version 3.18
|
|
|
7e35ac |
+ * update bug tracker to point at github (#17298)
|
|
|
7e35ac |
+ * disallow vstring magic strings over 2GB-1 (#17306)
|
|
|
7e35ac |
+ * mark some ASCII dependent tests as ASCII platform only
|
|
|
7e35ac |
+
|
|
|
7e35ac |
+2019-08-08 11:48:00 TonyC
|
|
|
7e35ac |
+ version 3.17
|
|
|
7e35ac |
+ * correct a data type to ensure the check for too large results from
|
|
|
7e35ac |
+ STORABLE_freeze() are detected correctly (detected by Coverity)
|
|
|
7e35ac |
+ * removed remains of stack size detection from the build process.
|
|
|
7e35ac |
+ * moved CAN_FLOCK detection into XS to simplify the build process.
|
|
|
7e35ac |
+
|
|
|
7e35ac |
+2019-06-11 10:43:00 TonyC
|
|
|
7e35ac |
+ version 3.16
|
|
|
7e35ac |
+ * (perl #134179) fix self-referencing structures that include regexps
|
|
|
7e35ac |
+ * bless regexps to preserve bless qr//, "Foo"
|
|
|
7e35ac |
+
|
|
|
7e35ac |
2019-04-23 16:00:00 xsawyerx
|
|
|
7e35ac |
version 3.15
|
|
|
7e35ac |
* Fix leaking.
|
|
|
7e35ac |
@@ -341,7 +372,7 @@ Sat Mar 13 20:11:03 GMT 2004 Nicholas Clark <nick@ccl4.org>
|
|
|
7e35ac |
Version 2.11
|
|
|
7e35ac |
|
|
|
7e35ac |
1. Storing restricted hashes in canonical order would SEGV. Fixed.
|
|
|
7e35ac |
- 2. It was impossible to retrieve references to PL_sv_no and and
|
|
|
7e35ac |
+ 2. It was impossible to retrieve references to PL_sv_no and
|
|
|
7e35ac |
PL_sv_undef from STORABLE_thaw hooks.
|
|
|
7e35ac |
3. restrict.t was failing on 5.8.0, due to 5.8.0's unique
|
|
|
7e35ac |
implementation of restricted hashes using PL_sv_undef
|
|
|
7e35ac |
diff --git a/MANIFEST b/MANIFEST
|
|
|
7e35ac |
index d30b94e..5e382d9 100644
|
|
|
7e35ac |
--- a/MANIFEST
|
|
|
7e35ac |
+++ b/MANIFEST
|
|
|
7e35ac |
@@ -1,4 +1,3 @@
|
|
|
7e35ac |
-__Storable__.pm
|
|
|
7e35ac |
ChangeLog
|
|
|
7e35ac |
hints/gnukfreebsd.pl
|
|
|
7e35ac |
hints/gnuknetbsd.pl
|
|
|
7e35ac |
@@ -11,7 +10,7 @@ META.yml Module meta-data (added by MakeMaker)
|
|
|
7e35ac |
ppport.h
|
|
|
7e35ac |
README
|
|
|
7e35ac |
stacksize
|
|
|
7e35ac |
-Storable.pm.PL
|
|
|
7e35ac |
+Storable.pm
|
|
|
7e35ac |
Storable.xs
|
|
|
7e35ac |
t/attach.t
|
|
|
7e35ac |
t/attach_errors.t
|
|
|
7e35ac |
diff --git a/Makefile.PL b/Makefile.PL
|
|
|
7e35ac |
index 4a39125..e03e141 100644
|
|
|
7e35ac |
--- a/Makefile.PL
|
|
|
7e35ac |
+++ b/Makefile.PL
|
|
|
7e35ac |
@@ -10,43 +10,48 @@ use strict;
|
|
|
7e35ac |
use warnings;
|
|
|
7e35ac |
use ExtUtils::MakeMaker 6.31;
|
|
|
7e35ac |
use Config;
|
|
|
7e35ac |
-use File::Copy qw(move copy);
|
|
|
7e35ac |
-use File::Spec;
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-my $pm = { 'Storable.pm' => '$(INST_ARCHLIB)/Storable.pm' };
|
|
|
7e35ac |
|
|
|
7e35ac |
WriteMakefile(
|
|
|
7e35ac |
NAME => 'Storable',
|
|
|
7e35ac |
AUTHOR => 'Perl 5 Porters',
|
|
|
7e35ac |
LICENSE => 'perl',
|
|
|
7e35ac |
DISTNAME => "Storable",
|
|
|
7e35ac |
-# We now ship this in t/
|
|
|
7e35ac |
-# PREREQ_PM => { 'Test::More' => '0.41' },
|
|
|
7e35ac |
- PL_FILES => { }, # prevent default behaviour
|
|
|
7e35ac |
- PM => $pm,
|
|
|
7e35ac |
- PREREQ_PM => { XSLoader => 0 },
|
|
|
7e35ac |
+ PREREQ_PM =>
|
|
|
7e35ac |
+ {
|
|
|
7e35ac |
+ XSLoader => 0,
|
|
|
7e35ac |
+ },
|
|
|
7e35ac |
+ ( $ExtUtils::MakeMaker::VERSION >= 6.64 ?
|
|
|
7e35ac |
+ (
|
|
|
7e35ac |
+ CONFIGURE_REQUIRES => {
|
|
|
7e35ac |
+ 'ExtUtils::MakeMaker' => '6.31',
|
|
|
7e35ac |
+ },
|
|
|
7e35ac |
+ BUILD_REQUIRES => {
|
|
|
7e35ac |
+ 'ExtUtils::MakeMaker' => '6.31',
|
|
|
7e35ac |
+ },
|
|
|
7e35ac |
+ TEST_REQUIRES => {
|
|
|
7e35ac |
+ 'Test::More' => '0.41',
|
|
|
7e35ac |
+ },
|
|
|
7e35ac |
+ )
|
|
|
7e35ac |
+ : () ),
|
|
|
7e35ac |
INSTALLDIRS => ($] >= 5.007 && $] < 5.012) ? 'perl' : 'site',
|
|
|
7e35ac |
- VERSION_FROM => '__Storable__.pm',
|
|
|
7e35ac |
- ABSTRACT_FROM => '__Storable__.pm',
|
|
|
7e35ac |
+ VERSION_FROM => 'Storable.pm',
|
|
|
7e35ac |
+ ABSTRACT_FROM => 'Storable.pm',
|
|
|
7e35ac |
($ExtUtils::MakeMaker::VERSION > 6.45 ?
|
|
|
7e35ac |
(META_MERGE => { resources =>
|
|
|
7e35ac |
- { bugtracker => 'http://rt.perl.org/perlbug/' },
|
|
|
7e35ac |
+ { bugtracker => 'https://github.com/Perl/perl5/issues' },
|
|
|
7e35ac |
provides => {
|
|
|
7e35ac |
'Storable' => {
|
|
|
7e35ac |
- file => '__Storable__.pm',
|
|
|
7e35ac |
- version => MM->parse_version('__Storable__.pm'),
|
|
|
7e35ac |
+ file => 'Storable.pm',
|
|
|
7e35ac |
+ version => MM->parse_version('Storable.pm'),
|
|
|
7e35ac |
},
|
|
|
7e35ac |
},
|
|
|
7e35ac |
|
|
|
7e35ac |
},
|
|
|
7e35ac |
) : ()),
|
|
|
7e35ac |
dist => { SUFFIX => 'gz', COMPRESS => 'gzip -f' },
|
|
|
7e35ac |
- clean => { FILES => 'Storable-* Storable.pm lib' },
|
|
|
7e35ac |
+ clean => { FILES => 'Storable-*' },
|
|
|
7e35ac |
);
|
|
|
7e35ac |
|
|
|
7e35ac |
-# Unlink the .pm file included with the distribution
|
|
|
7e35ac |
-1 while unlink "Storable.pm";
|
|
|
7e35ac |
-
|
|
|
7e35ac |
my $ivtype = $Config{ivtype};
|
|
|
7e35ac |
|
|
|
7e35ac |
# I don't know if the VMS folks ever supported long long on 5.6.x
|
|
|
7e35ac |
@@ -67,16 +72,8 @@ in the Storable documentation for instructions on how to read your data.
|
|
|
7e35ac |
EOM
|
|
|
7e35ac |
}
|
|
|
7e35ac |
|
|
|
7e35ac |
-# compute the maximum stacksize, before and after linking
|
|
|
7e35ac |
package MY;
|
|
|
7e35ac |
|
|
|
7e35ac |
-# FORCE finish of INST_DYNAMIC, avoid loading the old Storable (failed XS_VERSION check)
|
|
|
7e35ac |
-sub xlinkext {
|
|
|
7e35ac |
- my $s = shift->SUPER::linkext(@_);
|
|
|
7e35ac |
- $s =~ s|( :: .*)| $1 FORCE stacksize|;
|
|
|
7e35ac |
- $s
|
|
|
7e35ac |
-}
|
|
|
7e35ac |
-
|
|
|
7e35ac |
sub depend {
|
|
|
7e35ac |
"
|
|
|
7e35ac |
|
|
|
7e35ac |
@@ -87,13 +84,3 @@ release : dist
|
|
|
7e35ac |
git push --tags
|
|
|
7e35ac |
"
|
|
|
7e35ac |
}
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-sub postamble {
|
|
|
7e35ac |
-'
|
|
|
7e35ac |
-all :: Storable.pm
|
|
|
7e35ac |
- $(NOECHO) $(NOOP)
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-Storable.pm :: Storable.pm.PL __Storable__.pm
|
|
|
7e35ac |
- $(PERLRUN) Storable.pm.PL
|
|
|
7e35ac |
-'
|
|
|
7e35ac |
-}
|
|
|
7e35ac |
diff --git a/__Storable__.pm b/Storable.pm
|
|
|
7e35ac |
similarity index 99%
|
|
|
7e35ac |
rename from __Storable__.pm
|
|
|
7e35ac |
rename to Storable.pm
|
|
|
7e35ac |
index 9237371..1a750f1 100644
|
|
|
7e35ac |
--- a/__Storable__.pm
|
|
|
7e35ac |
+++ b/Storable.pm
|
|
|
7e35ac |
@@ -8,7 +8,7 @@
|
|
|
7e35ac |
# in the README file that comes with the distribution.
|
|
|
7e35ac |
#
|
|
|
7e35ac |
|
|
|
7e35ac |
-require XSLoader;
|
|
|
7e35ac |
+BEGIN { require XSLoader }
|
|
|
7e35ac |
require Exporter;
|
|
|
7e35ac |
package Storable;
|
|
|
7e35ac |
|
|
|
7e35ac |
@@ -27,7 +27,9 @@ our @EXPORT_OK = qw(
|
|
|
7e35ac |
|
|
|
7e35ac |
our ($canonical, $forgive_me);
|
|
|
7e35ac |
|
|
|
7e35ac |
-our $VERSION = '3.15';
|
|
|
7e35ac |
+BEGIN {
|
|
|
7e35ac |
+ our $VERSION = '3.21';
|
|
|
7e35ac |
+}
|
|
|
7e35ac |
|
|
|
7e35ac |
our $recursion_limit;
|
|
|
7e35ac |
our $recursion_limit_hash;
|
|
|
7e35ac |
@@ -104,14 +106,12 @@ $Storable::flags = FLAGS_COMPAT;
|
|
|
7e35ac |
$Storable::downgrade_restricted = 1;
|
|
|
7e35ac |
$Storable::accept_future_minor = 1;
|
|
|
7e35ac |
|
|
|
7e35ac |
-XSLoader::load('Storable');
|
|
|
7e35ac |
+BEGIN { XSLoader::load('Storable') };
|
|
|
7e35ac |
|
|
|
7e35ac |
#
|
|
|
7e35ac |
# Determine whether locking is possible, but only when needed.
|
|
|
7e35ac |
#
|
|
|
7e35ac |
|
|
|
7e35ac |
-sub CAN_FLOCK; # TEMPLATE - replaced by Storable.pm.PL
|
|
|
7e35ac |
-
|
|
|
7e35ac |
sub show_file_magic {
|
|
|
7e35ac |
print <
|
|
|
7e35ac |
#
|
|
|
7e35ac |
@@ -266,7 +266,7 @@ sub _store {
|
|
|
7e35ac |
local *FILE;
|
|
|
7e35ac |
if ($use_locking) {
|
|
|
7e35ac |
open(FILE, ">>", $file) || logcroak "can't write into $file: $!";
|
|
|
7e35ac |
- unless (&CAN_FLOCK) {
|
|
|
7e35ac |
+ unless (CAN_FLOCK) {
|
|
|
7e35ac |
logcarp
|
|
|
7e35ac |
"Storable::lock_store: fcntl/flock emulation broken on $^O";
|
|
|
7e35ac |
return undef;
|
|
|
7e35ac |
@@ -410,7 +410,7 @@ sub _retrieve {
|
|
|
7e35ac |
my $self;
|
|
|
7e35ac |
my $da = $@; # Could be from exception handler
|
|
|
7e35ac |
if ($use_locking) {
|
|
|
7e35ac |
- unless (&CAN_FLOCK) {
|
|
|
7e35ac |
+ unless (CAN_FLOCK) {
|
|
|
7e35ac |
logcarp
|
|
|
7e35ac |
"Storable::lock_store: fcntl/flock emulation broken on $^O";
|
|
|
7e35ac |
return undef;
|
|
|
7e35ac |
@@ -986,6 +986,9 @@ modifying C<$Storable::recursion_limit> and
|
|
|
7e35ac |
C<$Storable::recursion_limit_hash> respectively. Either can be set to
|
|
|
7e35ac |
C<-1> to prevent any depth checks, though this isn't recommended.
|
|
|
7e35ac |
|
|
|
7e35ac |
+If you want to test what the limits are, the F<stacksize> tool is
|
|
|
7e35ac |
+included in the C<Storable> distribution.
|
|
|
7e35ac |
+
|
|
|
7e35ac |
=item *
|
|
|
7e35ac |
|
|
|
7e35ac |
You can create endless loops if the things you serialize via freeze()
|
|
|
7e35ac |
@@ -1224,9 +1227,9 @@ See CVE-2015-1592 and its metasploit module.
|
|
|
7e35ac |
If your application requires accepting data from untrusted sources,
|
|
|
7e35ac |
you are best off with a less powerful and more-likely safe
|
|
|
7e35ac |
serialization format and implementation. If your data is sufficiently
|
|
|
7e35ac |
-simple, Cpanel::JSON::XS, Data::MessagePack or Serial are the best
|
|
|
7e35ac |
-choices and offers maximum interoperability, but note that Serial is
|
|
|
7e35ac |
-unsafe by default.
|
|
|
7e35ac |
+simple, L<Cpanel::JSON::XS>, L<Data::MessagePack> or L<Sereal> are the best
|
|
|
7e35ac |
+choices and offer maximum interoperability, but note that Sereal is
|
|
|
7e35ac |
+L<unsafe by default|Sereal::Decoder/ROBUSTNESS>.
|
|
|
7e35ac |
|
|
|
7e35ac |
=head1 WARNING
|
|
|
7e35ac |
|
|
|
7e35ac |
diff --git a/Storable.pm.PL b/Storable.pm.PL
|
|
|
7e35ac |
deleted file mode 100644
|
|
|
7e35ac |
index df979c0..0000000
|
|
|
7e35ac |
--- a/Storable.pm.PL
|
|
|
7e35ac |
+++ /dev/null
|
|
|
7e35ac |
@@ -1,35 +0,0 @@
|
|
|
7e35ac |
-use strict;
|
|
|
7e35ac |
-use warnings;
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-use Config;
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-my $template;
|
|
|
7e35ac |
-{ # keep all the code in an external template to keep it easy to update
|
|
|
7e35ac |
- local $/;
|
|
|
7e35ac |
- open my $FROM, '<', '__Storable__.pm' or die $!;
|
|
|
7e35ac |
- $template = <$FROM>;
|
|
|
7e35ac |
- close $FROM or die $!;
|
|
|
7e35ac |
-}
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-sub CAN_FLOCK {
|
|
|
7e35ac |
- return
|
|
|
7e35ac |
- $Config{'d_flock'} ||
|
|
|
7e35ac |
- $Config{'d_fcntl_can_lock'} ||
|
|
|
7e35ac |
- $Config{'d_lockf'}
|
|
|
7e35ac |
- ? 1 : 0;
|
|
|
7e35ac |
-}
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-my $CAN_FLOCK = CAN_FLOCK();
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-# populate the sub and preserve it if used outside
|
|
|
7e35ac |
-$template =~ s{^sub CAN_FLOCK;.*$}{sub CAN_FLOCK { ${CAN_FLOCK} } # computed by Storable.pm.PL}m;
|
|
|
7e35ac |
-# alternatively we could remove the sub
|
|
|
7e35ac |
-#$template =~ s{^sub CAN_FLOCK;.*$}{}m;
|
|
|
7e35ac |
-# replace local function calls to hardcoded value
|
|
|
7e35ac |
-$template =~ s{&CAN_FLOCK}{${CAN_FLOCK}}g;
|
|
|
7e35ac |
-
|
|
|
7e35ac |
-{
|
|
|
7e35ac |
- open my $OUT, '>', 'Storable.pm' or die $!;
|
|
|
7e35ac |
- print {$OUT} $template or die $!;
|
|
|
7e35ac |
- close $OUT or die $!;
|
|
|
7e35ac |
-}
|
|
|
7e35ac |
diff --git a/Storable.xs b/Storable.xs
|
|
|
7e35ac |
index e1f0b88..4c4c268 100644
|
|
|
7e35ac |
--- a/Storable.xs
|
|
|
7e35ac |
+++ b/Storable.xs
|
|
|
7e35ac |
@@ -104,6 +104,12 @@
|
|
|
7e35ac |
# define strEQc(s,c) memEQ(s, ("" c ""), sizeof(c))
|
|
|
7e35ac |
#endif
|
|
|
7e35ac |
|
|
|
7e35ac |
+#if defined(HAS_FLOCK) || defined(FCNTL_CAN_LOCK) && defined(HAS_LOCKF)
|
|
|
7e35ac |
+#define CAN_FLOCK &PL_sv_yes
|
|
|
7e35ac |
+#else
|
|
|
7e35ac |
+#define CAN_FLOCK &PL_sv_no
|
|
|
7e35ac |
+#endif
|
|
|
7e35ac |
+
|
|
|
7e35ac |
#ifdef DEBUGME
|
|
|
7e35ac |
|
|
|
7e35ac |
#ifndef DASSERT
|
|
|
7e35ac |
@@ -726,8 +732,8 @@ static stcxt_t *Context_ptr = NULL;
|
|
|
7e35ac |
STRLEN nsz = (STRLEN) round_mgrow((x)+msiz); \
|
|
|
7e35ac |
STRLEN offset = mptr - mbase; \
|
|
|
7e35ac |
ASSERT(!cxt->membuf_ro, ("mbase is not read-only")); \
|
|
|
7e35ac |
- TRACEME(("** extending mbase from %ld to %ld bytes (wants %ld new)", \
|
|
|
7e35ac |
- (long)msiz, nsz, (long)(x))); \
|
|
|
7e35ac |
+ TRACEME(("** extending mbase from %lu to %lu bytes (wants %lu new)", \
|
|
|
7e35ac |
+ (unsigned long)msiz, (unsigned long)nsz, (unsigned long)(x))); \
|
|
|
7e35ac |
Renew(mbase, nsz, char); \
|
|
|
7e35ac |
msiz = nsz; \
|
|
|
7e35ac |
mptr = mbase + offset; \
|
|
|
7e35ac |
@@ -3085,7 +3091,7 @@ static int store_hash(pTHX_ stcxt_t *cxt, HV *hv)
|
|
|
7e35ac |
len = HEK_LEN(hek);
|
|
|
7e35ac |
if (len == HEf_SVKEY) {
|
|
|
7e35ac |
/* This is somewhat sick, but the internal APIs are
|
|
|
7e35ac |
- * such that XS code could put one of these in in
|
|
|
7e35ac |
+ * such that XS code could put one of these in
|
|
|
7e35ac |
* a regular hash.
|
|
|
7e35ac |
* Maybe we should be capable of storing one if
|
|
|
7e35ac |
* found.
|
|
|
7e35ac |
@@ -3437,7 +3443,7 @@ static int get_regexp(pTHX_ stcxt_t *cxt, SV* sv, SV **re, SV **flags) {
|
|
|
7e35ac |
count = call_sv((SV*)cv, G_ARRAY);
|
|
|
7e35ac |
SPAGAIN;
|
|
|
7e35ac |
if (count < 2)
|
|
|
7e35ac |
- CROAK(("re::regexp_pattern returned only %d results", count));
|
|
|
7e35ac |
+ CROAK(("re::regexp_pattern returned only %d results", (int)count));
|
|
|
7e35ac |
*flags = POPs;
|
|
|
7e35ac |
SvREFCNT_inc(*flags);
|
|
|
7e35ac |
*re = POPs;
|
|
|
7e35ac |
@@ -5952,7 +5958,7 @@ static SV *retrieve_lvstring(pTHX_ stcxt_t *cxt, const char *cname)
|
|
|
7e35ac |
}
|
|
|
7e35ac |
|
|
|
7e35ac |
New(10003, s, len+1, char);
|
|
|
7e35ac |
- SAFEPVREAD(s, len, s);
|
|
|
7e35ac |
+ SAFEPVREAD(s, (I32)len, s);
|
|
|
7e35ac |
|
|
|
7e35ac |
sv = retrieve(aTHX_ cxt, cname);
|
|
|
7e35ac |
if (!sv) {
|
|
|
7e35ac |
@@ -6858,7 +6864,7 @@ static SV *retrieve_regexp(pTHX_ stcxt_t *cxt, const char *cname) {
|
|
|
7e35ac |
SPAGAIN;
|
|
|
7e35ac |
|
|
|
7e35ac |
if (count != 1)
|
|
|
7e35ac |
- CROAK(("Bad count %d calling _make_re", count));
|
|
|
7e35ac |
+ CROAK(("Bad count %d calling _make_re", (int)count));
|
|
|
7e35ac |
|
|
|
7e35ac |
re_ref = POPs;
|
|
|
7e35ac |
|
|
|
7e35ac |
@@ -7807,6 +7813,8 @@ BOOT:
|
|
|
7e35ac |
newCONSTSUB(stash, "BIN_MINOR", newSViv(STORABLE_BIN_MINOR));
|
|
|
7e35ac |
newCONSTSUB(stash, "BIN_WRITE_MINOR", newSViv(STORABLE_BIN_WRITE_MINOR));
|
|
|
7e35ac |
|
|
|
7e35ac |
+ newCONSTSUB(stash, "CAN_FLOCK", CAN_FLOCK);
|
|
|
7e35ac |
+
|
|
|
7e35ac |
init_perinterp(aTHX);
|
|
|
7e35ac |
gv_fetchpv("Storable::drop_utf8", GV_ADDMULTI, SVt_PV);
|
|
|
7e35ac |
#ifdef DEBUGME
|
|
|
7e35ac |
diff --git a/stacksize b/stacksize
|
|
|
7e35ac |
index f93eccc..2896684 100644
|
|
|
7e35ac |
--- a/stacksize
|
|
|
7e35ac |
+++ b/stacksize
|
|
|
7e35ac |
@@ -161,7 +161,7 @@ my $max_depth_hash = $n;
|
|
|
7e35ac |
# instead so a user setting of either variable more closely matches
|
|
|
7e35ac |
# the limits the use sees.
|
|
|
7e35ac |
|
|
|
7e35ac |
-# be fairly aggressive in trimming this, smoke testing showed several
|
|
|
7e35ac |
+# be fairly aggressive in trimming this, smoke testing showed
|
|
|
7e35ac |
# several apparently random failures here, eg. working in one
|
|
|
7e35ac |
# configuration, but not in a very similar configuration.
|
|
|
7e35ac |
$max_depth = int(0.6 * $max_depth);
|
|
|
7e35ac |
diff --git a/t/attach_errors.t b/t/attach_errors.t
|
|
|
7e35ac |
index 0ed7c8d..e2be39d 100644
|
|
|
7e35ac |
--- a/t/attach_errors.t
|
|
|
7e35ac |
+++ b/t/attach_errors.t
|
|
|
7e35ac |
@@ -94,7 +94,7 @@ use Storable ();
|
|
|
7e35ac |
# Error 2
|
|
|
7e35ac |
#
|
|
|
7e35ac |
# If, for some reason, a STORABLE_attach object is accidentally stored
|
|
|
7e35ac |
-# with references, this should be checked and and error should be throw.
|
|
|
7e35ac |
+# with references, this should be checked and an error should be thrown.
|
|
|
7e35ac |
|
|
|
7e35ac |
|
|
|
7e35ac |
|
|
|
7e35ac |
diff --git a/t/huge.t b/t/huge.t
|
|
|
7e35ac |
index d28e238..09b173e 100644
|
|
|
7e35ac |
--- a/t/huge.t
|
|
|
7e35ac |
+++ b/t/huge.t
|
|
|
7e35ac |
@@ -63,7 +63,7 @@ if ($Config{ptrsize} > 4 and !$has_too_many) {
|
|
|
7e35ac |
[ 'huge array',
|
|
|
7e35ac |
sub { my @x; $x[$huge] = undef; \@x } ];
|
|
|
7e35ac |
} else {
|
|
|
7e35ac |
- diag "skip huge array, need PERL_TEST_MEMORY >= 8";
|
|
|
7e35ac |
+ diag "skip huge array, need PERL_TEST_MEMORY >= 55";
|
|
|
7e35ac |
}
|
|
|
7e35ac |
}
|
|
|
7e35ac |
|
|
|
7e35ac |
@@ -78,7 +78,7 @@ if (!$has_too_many) {
|
|
|
7e35ac |
['huge hash',
|
|
|
7e35ac |
sub { my %x = (0 .. $huge); \%x } ];
|
|
|
7e35ac |
} else {
|
|
|
7e35ac |
- diag "skip huge hash, need PERL_TEST_MEMORY >= 16";
|
|
|
7e35ac |
+ diag "skip huge hash, need PERL_TEST_MEMORY >= 96";
|
|
|
7e35ac |
}
|
|
|
7e35ac |
}
|
|
|
7e35ac |
|
|
|
7e35ac |
diff --git a/t/recurse.t b/t/recurse.t
|
|
|
7e35ac |
index b5967a0..6f82169 100644
|
|
|
7e35ac |
--- a/t/recurse.t
|
|
|
7e35ac |
+++ b/t/recurse.t
|
|
|
7e35ac |
@@ -347,7 +347,7 @@ sub MAX_DEPTH_HASH () { Storable::stack_depth_hash() }
|
|
|
7e35ac |
eval {
|
|
|
7e35ac |
my $t;
|
|
|
7e35ac |
$t = [$t] for 1 .. MAX_DEPTH*2;
|
|
|
7e35ac |
- note 'trying catching recursive aref stack overflow';
|
|
|
7e35ac |
+ eval { note('trying catching recursive aref stack overflow') };
|
|
|
7e35ac |
dclone $t;
|
|
|
7e35ac |
};
|
|
|
7e35ac |
like $@, qr/Max\. recursion depth with nested structures exceeded/,
|
|
|
7e35ac |
@@ -362,7 +362,7 @@ else {
|
|
|
7e35ac |
my $t;
|
|
|
7e35ac |
# 35.000 will cause appveyor 64bit windows to fail earlier
|
|
|
7e35ac |
$t = {1=>$t} for 1 .. MAX_DEPTH * 2;
|
|
|
7e35ac |
- note 'trying catching recursive href stack overflow';
|
|
|
7e35ac |
+ eval { note('trying catching recursive href stack overflow') };
|
|
|
7e35ac |
dclone $t;
|
|
|
7e35ac |
};
|
|
|
7e35ac |
like $@, qr/Max\. recursion depth with nested structures exceeded/,
|
|
|
7e35ac |
diff --git a/t/regexp.t b/t/regexp.t
|
|
|
7e35ac |
index e7c6c7e..6c6b1d5 100644
|
|
|
7e35ac |
--- a/t/regexp.t
|
|
|
7e35ac |
+++ b/t/regexp.t
|
|
|
7e35ac |
@@ -123,7 +123,7 @@ __DATA__
|
|
|
7e35ac |
A-; qr(\x2E) ; ".", !"a" ; \x2E - hex meta
|
|
|
7e35ac |
-; qr/\./ ; "." , !"a" ; \. - backslash meta
|
|
|
7e35ac |
8- ; qr/\x{100}/ ; "\x{100}" ; simple unicode
|
|
|
7e35ac |
-12- ; qr/fss/i ; "f\xDF\x{101}" ; case insensive unicode promoted
|
|
|
7e35ac |
-22-; qr/fss/ui ; "f\xDF" ; case insensitive unicode SS /iu
|
|
|
7e35ac |
-22-; qr/fss/aai ; !"f\xDF" ; case insensitive unicode SS /iaa
|
|
|
7e35ac |
-22-; qr/f\w/a ; "fo", !"f\xff" ; simple /a flag
|
|
|
7e35ac |
+A12- ; qr/fss/i ; "f\xDF\x{101}" ; case insensive unicode promoted
|
|
|
7e35ac |
+A22-; qr/fss/ui ; "f\xDF" ; case insensitive unicode SS /iu
|
|
|
7e35ac |
+A22-; qr/fss/aai ; !"f\xDF" ; case insensitive unicode SS /iaa
|
|
|
7e35ac |
+A22-; qr/f\w/a ; "fo", !"f\xff" ; simple /a flag
|
|
|
7e35ac |
--
|
|
|
7e35ac |
2.25.4
|
|
|
7e35ac |
|