Tuesday 26th November 2013
Fedora Project
Updated perl-IO-Socket-SSL to 1.961 in Rawhide:
IO::Socket::SSL::Utils::CERT_create can now create CA-certificates that are not self-signed (by giving issuer_*)
Updated perl-Readonly to 1.04 in Rawhide:
Module now maintained by Sanko Robinson; please see TODO for a possible set of changes to this module that may affect code written for old, pre-perl 5.14.0 platforms!
Local Packages
Updated perl-Class-Tiny to 0.013:
Expanded comparison to Object::Tiny and Class::Accessor
Updated perl-IO-Socket-SSL to 1.961 as per the Fedora version
Updated perl-Path-Tiny to 0.047:
- Previous lock testing fixes broke on Windows
Updated perl-Readonly to 1.04 as per the Fedora version
Updated perl-Text-Haml to 0.990113:
Fix test failure on windows (\r\n -> \n)
- Fix bug with HTML escaping
Updated perl-YAML to 0.86:
Synopsis in YAML::Dumper didn't work as expected (CPAN RT#19838)
Address complex regular subexpression recursion limit (CPAN RT#90593)
The fix for CPAN RT#90593 used a regex feature introduced in Perl 5.10, so to maintain compatibility for older releases, I used a different fix (just on the older releases) based on a patch posted in CPAN RT#18195:
Fix for CPAN RT#18195 and CPAN RT#90593 Upstream fix in 0.85 doesn't work with perl < 5.10 --- lib/YAML/Loader.pm +++ lib/YAML/Loader.pm @@ -510,12 +510,28 @@ return $node; } +# Work around /regexp/ bug in perl < 5.10 +sub _parse_inline_double_quoted_perl_bug_work_around { + my $self = shift; + my @list; + local $_ = $self->{inline}; + s{^"}{} or croak YAML_PARSE_ERR_BAD_DOUBLE(); + push @list, $1 + while s{^((?:\\.|[^\"\\]+){1,1000})}{}; + s/\\"/"/g for @list; + s{^"}{} or croak YAML_PARSE_ERR_BAD_DOUBLE(); + $self->{inline} = $_; + return join("",@list); +} + # Parse the inline double quoted string. sub _parse_inline_double_quoted { my $self = shift; my $node; - # https://rt.cpan.org/Public/Bug/Display.html?id=90593 - if ($self->inline =~ /^"((?:(?:\\"|[^"]){0,32766}+){0,32766}+)"\s*(.*)$/) { + # https://rt.cpan.org/Public/Bug/Display.html?id=18195 + return $self->_parse_inline_double_quoted_perl_bug_work_around() + if length($self->{inline}) > 10_000; + if ($self->inline =~ /^"((?:\\"|[^"])*)"\s*(.*)$/) { $node = $1; $self->inline($2); $node =~ s/\\"/"/g;