diff -Nru libemail-address-list-perl-0.05/Changes libemail-address-list-perl-0.06/Changes --- libemail-address-list-perl-0.05/Changes 2014-02-16 19:09:16.000000000 +0000 +++ libemail-address-list-perl-0.06/Changes 2019-01-29 20:55:44.000000000 +0000 @@ -1,3 +1,12 @@ +0.06 2019-01-02 + + - Changes to address CVE-2018-18898 which could allow DDoS-type attacks. + Thanks to Lukas Kramer for reporting the issue and Alex Vandiver for + contributing fixes. + - Fix pathological backtracking for unkown regex + - Fix pathological backtracking in obs-phrase(i.e. obs-display-name) + - Fix pathological backtracking in cfws, quoted strings + 0.05 2014-02-16 - Correct typos in documentation; no functionality changes diff -Nru libemail-address-list-perl-0.05/debian/changelog libemail-address-list-perl-0.06/debian/changelog --- libemail-address-list-perl-0.05/debian/changelog 2014-02-16 23:26:24.000000000 +0000 +++ libemail-address-list-perl-0.06/debian/changelog 2019-02-06 18:39:41.000000000 +0000 @@ -1,3 +1,28 @@ +libemail-address-list-perl (0.06-1) unstable; urgency=medium + + * Team upload. + + [ Salvatore Bonaccorso ] + * Update Vcs-Browser URL to cgit web frontend + * debian/control: Use HTTPS transport protocol for Vcs-Git URI + + [ gregor herrmann ] + * debian/copyright: change Copyright-Format 1.0 URL to HTTPS. + + [ Salvatore Bonaccorso ] + * Update Vcs-* headers for switch to salsa.debian.org + + [ gregor herrmann ] + * Import upstream version 0.06: + Changes to address CVE-2018-18898 which could allow DDoS-type attacks. + * Mark package as autopkgtest-able. + * Declare compliance with Debian Policy 4.3.0. + * Bump debhelper compatibility level to 11. + * Add patch to fix configure failure without '.' in @INC. + * Mention module name in long description. + + -- gregor herrmann Wed, 06 Feb 2019 19:39:41 +0100 + libemail-address-list-perl (0.05-1) unstable; urgency=medium * Team upload. diff -Nru libemail-address-list-perl-0.05/debian/compat libemail-address-list-perl-0.06/debian/compat --- libemail-address-list-perl-0.05/debian/compat 2014-02-16 23:26:24.000000000 +0000 +++ libemail-address-list-perl-0.06/debian/compat 2019-02-06 18:39:41.000000000 +0000 @@ -1 +1 @@ -9 +11 diff -Nru libemail-address-list-perl-0.05/debian/control libemail-address-list-perl-0.06/debian/control --- libemail-address-list-perl-0.05/debian/control 2014-02-16 23:26:24.000000000 +0000 +++ libemail-address-list-perl-0.06/debian/control 2019-02-06 18:39:41.000000000 +0000 @@ -1,22 +1,24 @@ Source: libemail-address-list-perl -Section: perl -Priority: optional Maintainer: Debian Perl Group Uploaders: Bastian Blank , - Dominic Hargreaves -Build-Depends: debhelper (>= 9.20120312) + Dominic Hargreaves +Section: perl +Testsuite: autopkgtest-pkg-perl +Priority: optional +Build-Depends: debhelper (>= 11) Build-Depends-Indep: libemail-address-perl, - libjson-perl, - perl -Standards-Version: 3.9.5 -Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libemail-address-list-perl.git -Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libemail-address-list-perl.git + libjson-perl, + perl +Standards-Version: 4.3.0 +Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libemail-address-list-perl +Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libemail-address-list-perl.git Homepage: https://metacpan.org/release/Email-Address-List Package: libemail-address-list-perl Architecture: all -Depends: ${misc:Depends}, ${perl:Depends}, - libemail-address-perl +Depends: ${misc:Depends}, + ${perl:Depends}, + libemail-address-perl Description: RFC close address list parsing - Parser for From, To, Cc, Bcc, Reply-To, Sender and previous prefixed - with Resent- (eg Resent-From) e-mail headers. + Email::Address::List provides a parser for From, To, Cc, Bcc, Reply-To, + Sender and previous prefixed with Resent- (eg Resent-From) e-mail headers. diff -Nru libemail-address-list-perl-0.05/debian/copyright libemail-address-list-perl-0.06/debian/copyright --- libemail-address-list-perl-0.05/debian/copyright 2014-02-16 23:26:24.000000000 +0000 +++ libemail-address-list-perl-0.06/debian/copyright 2019-02-06 18:39:41.000000000 +0000 @@ -1,4 +1,4 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://metacpan.org/release/Email-Address-List Upstream-Contact: Alex Vandiver Upstream-Name: Email-Address-List diff -Nru libemail-address-list-perl-0.05/debian/patches/no-dot-in-inc.patch libemail-address-list-perl-0.06/debian/patches/no-dot-in-inc.patch --- libemail-address-list-perl-0.05/debian/patches/no-dot-in-inc.patch 1970-01-01 00:00:00.000000000 +0000 +++ libemail-address-list-perl-0.06/debian/patches/no-dot-in-inc.patch 2019-02-06 18:39:41.000000000 +0000 @@ -0,0 +1,14 @@ +Description: . was removed from @INC +Origin: vendor +Bug: https://rt.cpan.org/Public/Bug/Display.html?id=121199 +Forwarded: *** FIXME *** +Author: gregor herrmann +Last-Update: 2019-02-06 + +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -1,3 +1,4 @@ ++use lib '.'; + use inc::Module::Install; + all_from 'lib/Email/Address/List.pm'; + readme_from 'lib/Email/Address/List.pm'; diff -Nru libemail-address-list-perl-0.05/debian/patches/series libemail-address-list-perl-0.06/debian/patches/series --- libemail-address-list-perl-0.05/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ libemail-address-list-perl-0.06/debian/patches/series 2019-02-06 18:39:41.000000000 +0000 @@ -0,0 +1 @@ +no-dot-in-inc.patch diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/Base.pm libemail-address-list-perl-0.06/inc/Module/Install/Base.pm --- libemail-address-list-perl-0.05/inc/Module/Install/Base.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/Base.pm 2019-01-29 20:59:48.000000000 +0000 @@ -4,7 +4,7 @@ use strict 'vars'; use vars qw{$VERSION}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.19'; } # Suspend handler for "redefined" warnings diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/Can.pm libemail-address-list-perl-0.06/inc/Module/Install/Can.pm --- libemail-address-list-perl-0.05/inc/Module/Install/Can.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/Can.pm 2019-01-29 20:59:48.000000000 +0000 @@ -8,7 +8,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.19'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -121,6 +121,15 @@ # Can we locate a (the) C compiler sub can_cc { my $self = shift; + + if ($^O eq 'VMS') { + require ExtUtils::CBuilder; + my $builder = ExtUtils::CBuilder->new( + quiet => 1, + ); + return $builder->have_compiler; + } + my @chunks = split(/ /, $Config::Config{cc}) or return; # $Config{cc} may contain args; try to find out the program part @@ -151,4 +160,4 @@ __END__ -#line 236 +#line 245 diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/Fetch.pm libemail-address-list-perl-0.06/inc/Module/Install/Fetch.pm --- libemail-address-list-perl-0.05/inc/Module/Install/Fetch.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/Fetch.pm 2019-01-29 20:59:48.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.19'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/Makefile.pm libemail-address-list-perl-0.06/inc/Module/Install/Makefile.pm --- libemail-address-list-perl-0.05/inc/Module/Install/Makefile.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/Makefile.pm 2019-01-29 20:59:48.000000000 +0000 @@ -8,7 +8,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.19'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -133,7 +133,7 @@ return $args; } -# For mm args that take multiple space-seperated args, +# For mm args that take multiple space-separated args, # append an argument to the current list. sub makemaker_append { my $self = shift; diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/Metadata.pm libemail-address-list-perl-0.06/inc/Module/Install/Metadata.pm --- libemail-address-list-perl-0.05/inc/Module/Install/Metadata.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/Metadata.pm 2019-01-29 20:59:48.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.19'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -347,7 +347,7 @@ ^ \s* package \s* ([\w:]+) - \s* ; + [\s|;]* /ixms ) { my ($name, $module_name) = ($1, $1); @@ -705,7 +705,7 @@ my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); my $meta = $yaml[0]; - # Overwrite the non-configure dependency hashs + # Overwrite the non-configure dependency hashes delete $meta->{requires}; delete $meta->{build_requires}; delete $meta->{recommends}; diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/ReadmeFromPod.pm libemail-address-list-perl-0.06/inc/Module/Install/ReadmeFromPod.pm --- libemail-address-list-perl-0.05/inc/Module/Install/ReadmeFromPod.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/ReadmeFromPod.pm 2019-01-29 20:59:48.000000000 +0000 @@ -7,12 +7,41 @@ use base qw(Module::Install::Base); use vars qw($VERSION); -$VERSION = '0.22'; +$VERSION = '0.30'; + +{ + + # these aren't defined until after _require_admin is run, so + # define them so prototypes are available during compilation. + sub io; + sub capture(&;@); + +#line 28 + + my $done = 0; + + sub _require_admin { + + # do this once to avoid redefinition warnings from IO::All + return if $done; + + require IO::All; + IO::All->import( '-binary' ); + + require Capture::Tiny; + Capture::Tiny->import ( 'capture' ); + + return; + } + +} sub readme_from { my $self = shift; return unless $self->is_admin; + _require_admin; + # Input file my $in_file = shift || $self->_all_from or die "Can't determine file to make readme_from"; @@ -50,6 +79,8 @@ $out_file = $self->_readme_htm($in_file, $out_file, $options); } elsif ($format eq 'man') { $out_file = $self->_readme_man($in_file, $out_file, $options); + } elsif ($format eq 'md') { + $out_file = $self->_readme_md($in_file, $out_file, $options); } elsif ($format eq 'pdf') { $out_file = $self->_readme_pdf($in_file, $out_file, $options); } @@ -67,10 +98,10 @@ $out_file ||= 'README'; require Pod::Text; my $parser = Pod::Text->new( @$options ); - open my $out_fh, '>', $out_file or die "Could not write file $out_file:\n$!\n"; + my $io = io->file($out_file)->open(">"); + my $out_fh = $io->io_handle; $parser->output_fh( *$out_fh ); $parser->parse_file( $in_file ); - close $out_fh; return $out_file; } @@ -79,11 +110,14 @@ my ($self, $in_file, $out_file, $options) = @_; $out_file ||= 'README.htm'; require Pod::Html; - Pod::Html::pod2html( - "--infile=$in_file", - "--outfile=$out_file", - @$options, - ); + my ($o) = capture { + Pod::Html::pod2html( + "--infile=$in_file", + "--outfile=-", + @$options, + ); + }; + io->file($out_file)->print($o); # Remove temporary files if needed for my $file ('pod2htmd.tmp', 'pod2htmi.tmp') { if (-e $file) { @@ -99,7 +133,10 @@ $out_file ||= 'README.1'; require Pod::Man; my $parser = Pod::Man->new( @$options ); - $parser->parse_from_file($in_file, $out_file); + my $io = io->file($out_file)->open(">"); + my $out_fh = $io->io_handle; + $parser->output_fh( *$out_fh ); + $parser->parse_file( $in_file ); return $out_file; } @@ -111,11 +148,20 @@ or die "Could not generate $out_file because pod2pdf could not be found\n"; my $parser = App::pod2pdf->new( @$options ); $parser->parse_from_file($in_file); - open my $out_fh, '>', $out_file or die "Could not write file $out_file:\n$!\n"; - select $out_fh; - $parser->output; - select STDOUT; - close $out_fh; + my ($o) = capture { $parser->output }; + io->file($out_file)->print($o); + return $out_file; +} + +sub _readme_md { + my ($self, $in_file, $out_file, $options) = @_; + $out_file ||= 'README.md'; + require Pod::Markdown; + my $parser = Pod::Markdown->new( @$options ); + my $io = io->file($out_file)->open(">"); + my $out_fh = $io->io_handle; + $parser->output_fh( *$out_fh ); + $parser->parse_file( $in_file ); return $out_file; } @@ -134,5 +180,5 @@ __END__ -#line 254 +#line 316 diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/Win32.pm libemail-address-list-perl-0.06/inc/Module/Install/Win32.pm --- libemail-address-list-perl-0.05/inc/Module/Install/Win32.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/Win32.pm 2019-01-29 20:59:48.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.19'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -Nru libemail-address-list-perl-0.05/inc/Module/Install/WriteAll.pm libemail-address-list-perl-0.06/inc/Module/Install/WriteAll.pm --- libemail-address-list-perl-0.05/inc/Module/Install/WriteAll.pm 2014-02-16 19:09:23.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install/WriteAll.pm 2019-01-29 20:59:48.000000000 +0000 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.19'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } diff -Nru libemail-address-list-perl-0.05/inc/Module/Install.pm libemail-address-list-perl-0.06/inc/Module/Install.pm --- libemail-address-list-perl-0.05/inc/Module/Install.pm 2014-02-16 19:09:20.000000000 +0000 +++ libemail-address-list-perl-0.06/inc/Module/Install.pm 2019-01-29 20:59:48.000000000 +0000 @@ -17,7 +17,7 @@ # 3. The ./inc/ version of Module::Install loads # } -use 5.005; +use 5.006; use strict 'vars'; use Cwd (); use File::Find (); @@ -31,7 +31,7 @@ # This is not enforced yet, but will be some time in the next few # releases once we can make sure it won't clash with custom # Module::Install extensions. - $VERSION = '1.06'; + $VERSION = '1.19'; # Storage for the pseudo-singleton $MAIN = undef; @@ -156,10 +156,10 @@ sub autoload { my $self = shift; my $who = $self->_caller; - my $cwd = Cwd::cwd(); + my $cwd = Cwd::getcwd(); my $sym = "${who}::AUTOLOAD"; $sym->{$cwd} = sub { - my $pwd = Cwd::cwd(); + my $pwd = Cwd::getcwd(); if ( my $code = $sym->{$pwd} ) { # Delegate back to parent dirs goto &$code unless $cwd eq $pwd; @@ -239,11 +239,13 @@ # ignore the prefix on extension modules built from top level. my $base_path = Cwd::abs_path($FindBin::Bin); - unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) { + unless ( Cwd::abs_path(Cwd::getcwd()) eq $base_path ) { delete $args{prefix}; } return $args{_self} if $args{_self}; + $base_path = VMS::Filespec::unixify($base_path) if $^O eq 'VMS'; + $args{dispatch} ||= 'Admin'; $args{prefix} ||= 'inc'; $args{author} ||= ($^O eq 'VMS' ? '_author' : '.author'); @@ -322,7 +324,7 @@ my ($self, $path) = @_; my @found; - File::Find::find( sub { + File::Find::find( {no_chdir => 1, wanted => sub { my $file = $File::Find::name; return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is; my $subpath = $1; @@ -336,9 +338,9 @@ # correctly. Otherwise, root through the file to locate the case-preserved # version of the package name. if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) { - my $content = Module::Install::_read($subpath . '.pm'); + my $content = Module::Install::_read($File::Find::name); my $in_pod = 0; - foreach ( split //, $content ) { + foreach ( split /\n/, $content ) { $in_pod = 1 if /^=\w/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # skip pod text @@ -351,7 +353,7 @@ } push @found, [ $file, $pkg ]; - }, $path ) if -d $path; + }}, $path ) if -d $path; @found; } @@ -373,24 +375,14 @@ return $call; } -# Done in evals to avoid confusing Perl::MinimumVersion -eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _read { local *FH; open( FH, '<', $_[0] ) or die "open($_[0]): $!"; + binmode FH; my $string = do { local $/; }; close FH or die "close($_[0]): $!"; return $string; } -END_NEW -sub _read { - local *FH; - open( FH, "< $_[0]" ) or die "open($_[0]): $!"; - my $string = do { local $/; }; - close FH or die "close($_[0]): $!"; - return $string; -} -END_OLD sub _readperl { my $string = Module::Install::_read($_[0]); @@ -411,30 +403,19 @@ return $string; } -# Done in evals to avoid confusing Perl::MinimumVersion -eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _write { local *FH; open( FH, '>', $_[0] ) or die "open($_[0]): $!"; + binmode FH; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } close FH or die "close($_[0]): $!"; } -END_NEW -sub _write { - local *FH; - open( FH, "> $_[0]" ) or die "open($_[0]): $!"; - foreach ( 1 .. $#_ ) { - print FH $_[$_] or die "print($_[0]): $!"; - } - close FH or die "close($_[0]): $!"; -} -END_OLD # _version is for processing module versions (eg, 1.03_05) not # Perl versions (eg, 5.8.1). -sub _version ($) { +sub _version { my $s = shift || 0; my $d =()= $s =~ /(\.)/g; if ( $d >= 2 ) { @@ -450,12 +431,12 @@ return $l + 0; } -sub _cmp ($$) { +sub _cmp { _version($_[1]) <=> _version($_[2]); } # Cloned from Params::Util::_CLASS -sub _CLASS ($) { +sub _CLASS { ( defined $_[0] and diff -Nru libemail-address-list-perl-0.05/lib/Email/Address/List.pm libemail-address-list-perl-0.06/lib/Email/Address/List.pm --- libemail-address-list-perl-0.05/lib/Email/Address/List.pm 2014-02-16 19:08:41.000000000 +0000 +++ libemail-address-list-perl-0.06/lib/Email/Address/List.pm 2019-01-29 20:55:44.000000000 +0000 @@ -4,7 +4,7 @@ package Email::Address::List; -our $VERSION = '0.05'; +our $VERSION = '0.06'; use Email::Address; =head1 NAME @@ -201,36 +201,36 @@ $RE{'quoted_pair'} = qr/\\$RE{'text'}/; $RE{'atext'} = qr/[^$RE{'CTL'}$RE{'special'}\s]/; -$RE{'ctext'} = qr/(?>[^()\\]+)/; +$RE{'ctext'} = qr/[^()\\]++/; $RE{'qtext'} = qr/[^\\"]/; $RE{'dtext'} = qr/[^\[\]\\]/; ($RE{'ccontent'}, $RE{'comment'}) = (q{})x2; for (1 .. $COMMENT_NEST_LEVEL) { $RE{'ccontent'} = qr/$RE{'ctext'}|$RE{'quoted_pair'}|$RE{'comment'}/; - $RE{'comment'} = qr/\s*\((?:\s*$RE{'ccontent'})*\s*\)\s*/; + $RE{'comment'} = qr/(?>\s*+\((?:\s*+$RE{'ccontent'})*+\s*+\)\s*+)/; } -$RE{'cfws'} = qr/$RE{'comment'}|\s+/; +$RE{'cfws'} = qr/$RE{'comment'}++|\s*+/; $RE{'qcontent'} = qr/$RE{'qtext'}|$RE{'quoted_pair'}/; -$RE{'quoted-string'} = qr/$RE{'cfws'}*"$RE{'qcontent'}+"$RE{'cfws'}*/; +$RE{'quoted-string'} = qr/$RE{'cfws'}"$RE{'qcontent'}*+"$RE{'cfws'}/; -$RE{'atom'} = qr/$RE{'cfws'}*$RE{'atext'}++$RE{'cfws'}*/; +$RE{'atom'} = qr/$RE{'cfws'}$RE{'atext'}++$RE{'cfws'}/; -$RE{'word'} = qr/$RE{'cfws'}* (?: $RE{'atom'} | "$RE{'qcontent'}+" ) $RE{'cfws'}*/x; +$RE{'word'} = qr/$RE{'atom'} | $RE{'quoted-string'}/x; $RE{'phrase'} = qr/$RE{'word'}+/x; $RE{'display-name'} = $RE{'phrase'}; -$RE{'dot_atom_text'} = qr/$RE{'atext'}+(?:\.$RE{'atext'}+)*/; -$RE{'dot_atom'} = qr/$RE{'cfws'}*$RE{'dot_atom_text'}$RE{'cfws'}*/; +$RE{'dot_atom_text'} = qr/$RE{'atext'}++(?:\.$RE{'atext'}++)*/; +$RE{'dot_atom'} = qr/$RE{'cfws'}$RE{'dot_atom_text'}$RE{'cfws'}/; $RE{'local-part'} = qr/$RE{'dot_atom'}|$RE{'quoted-string'}/; $RE{'dcontent'} = qr/$RE{'dtext'}|$RE{'quoted_pair'}/; -$RE{'domain_literal'} = qr/$RE{'cfws'}*\[(?:\s*$RE{'dcontent'})*\s*\]$RE{'cfws'}*/; +$RE{'domain_literal'} = qr/$RE{'cfws'}\[(?:\s*$RE{'dcontent'})*\s*\]$RE{'cfws'}/; $RE{'domain'} = qr/$RE{'dot_atom'}|$RE{'domain_literal'}/; $RE{'addr-spec'} = qr/$RE{'local-part'}\@$RE{'domain'}/; -$RE{'angle-addr'} = qr/$RE{'cfws'}* < $RE{'addr-spec'} > $RE{'cfws'}*/x; +$RE{'angle-addr'} = qr/$RE{'cfws'} < $RE{'addr-spec'} > $RE{'cfws'}/x; $RE{'name-addr'} = qr/$RE{'display-name'}?$RE{'angle-addr'}/; $RE{'mailbox'} = qr/(?:$RE{'name-addr'}|$RE{'addr-spec'})$RE{'comment'}*/; @@ -238,13 +238,13 @@ $CRE{'addr-spec'} = qr/($RE{'local-part'})\@($RE{'domain'})/; $CRE{'mailbox'} = qr/ (?: - ($RE{'display-name'})?($RE{'cfws'}*)<$CRE{'addr-spec'}>($RE{'cfws'}*) + ($RE{'display-name'})?($RE{'cfws'})<$CRE{'addr-spec'}>($RE{'cfws'}) |$CRE{'addr-spec'} - )($RE{'comment'}*) + )($RE{'comment'}*+) /x; -$RE{'dword'} = qr/$RE{'cfws'}* (?: $RE{'atom'} | \. | "$RE{'qcontent'}+" ) $RE{'cfws'}*/x; -$RE{'obs-phrase'} = qr/$RE{'word'} $RE{'dword'}*/x; +$RE{'dword'} = qr/$RE{'cfws'} (?: $RE{'atom'} | \. | "$RE{'qcontent'}++" ) $RE{'cfws'}/x; +$RE{'obs-phrase'} = qr/$RE{'word'} $RE{'dword'}*+/x; $RE{'obs-display-name'} = $RE{'obs-phrase'}; $RE{'obs-route'} = qr/ (?:$RE{'cfws'}|,)* @@ -259,9 +259,9 @@ $CRE{'obs-mailbox'} = qr/ (?: ($RE{'obs-display-name'})? - ($RE{'cfws'}*)< $RE{'obs-route'}? $CRE{'obs-addr-spec'} >($RE{'cfws'}*) + ($RE{'cfws'})< $RE{'obs-route'}? $CRE{'obs-addr-spec'} >($RE{'cfws'}) |$CRE{'obs-addr-spec'} - )($RE{'comment'}*) + )($RE{'comment'}*+) /x; sub parse { @@ -331,12 +331,12 @@ # if we got here then something unknown on our way # try to recorver if ($in_group) { - if ( $line =~ s/^([^;,"\)]*(?:(?:$RE{'quoted-string'}|$RE{'comment'})[^;,"\)]*)*)(?=;|,)//o ) { + if ( $line =~ s/^([^;,"\)]*+(?:(?:$RE{'quoted-string'}|$RE{'comment'})[^;,"\)]*+)*+)(?=;|,)//o ) { push @res, { type => 'unknown', value => $1 } unless $args{'skip_unknown'}; next; } } else { - if ( $line =~ s/^([^,"\)]*(?:(?:$RE{'quoted-string'}|$RE{'comment'})[^,"\)]*)*)(?=,)//o ) { + if ( $line =~ s/^([^,"\)]*+(?:(?:$RE{'quoted-string'}|$RE{'comment'})[^,"\)]*+)*+)(?=,)//o ) { push @res, { type => 'unknown', value => $1 } unless $args{'skip_unknown'}; next; } diff -Nru libemail-address-list-perl-0.05/META.yml libemail-address-list-perl-0.06/META.yml --- libemail-address-list-perl-0.05/META.yml 2014-02-16 19:09:24.000000000 +0000 +++ libemail-address-list-perl-0.06/META.yml 2019-01-29 20:59:48.000000000 +0000 @@ -10,7 +10,7 @@ ExtUtils::MakeMaker: 6.59 distribution_type: module dynamic_config: 1 -generated_by: 'Module::Install version 1.06' +generated_by: 'Module::Install version 1.19' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -26,4 +26,4 @@ perl: 5.10.0 resources: license: http://dev.perl.org/licenses/ -version: 0.05 +version: '0.06' diff -Nru libemail-address-list-perl-0.05/SIGNATURE libemail-address-list-perl-0.06/SIGNATURE --- libemail-address-list-perl-0.05/SIGNATURE 2014-02-16 19:10:04.000000000 +0000 +++ libemail-address-list-perl-0.06/SIGNATURE 2019-01-29 20:59:53.000000000 +0000 @@ -1,5 +1,5 @@ This file contains message digests of all files listed in MANIFEST, -signed via the Module::Signature module, version 0.69. +signed via the Module::Signature module, version 0.83. To verify the content in this distribution, first make sure you have Module::Signature installed, then type: @@ -14,35 +14,38 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -SHA1 3436e919e4b66f27f2ea395cb9d4e0351877aa58 Changes -SHA1 17f8596db104ffaea586784e085f4824fb3741ff MANIFEST -SHA1 83ef7f35c1129972703ce725157a1c9b7acc4ce2 META.yml -SHA1 be4547d00d6c49fe4252da994378c2a7f161c3e5 Makefile.PL -SHA1 2a014fe26766365a791f1020ca818ed06d2dc221 README -SHA1 8a924add836b60fb23b25c8506d45945e02f42f4 inc/Module/Install.pm -SHA1 2d0fad3bf255f8c1e7e1e34eafccc4f595603ddc inc/Module/Install/Base.pm -SHA1 f0e01fff7d73cd145fbf22331579918d4628ddb0 inc/Module/Install/Can.pm -SHA1 7328966e4fda0c8451a6d3850704da0b84ac1540 inc/Module/Install/Fetch.pm -SHA1 b62ca5e2d58fa66766ccf4d64574f9e1a2250b34 inc/Module/Install/Makefile.pm -SHA1 1aa925be410bb3bfcd84a16985921f66073cc1d2 inc/Module/Install/Metadata.pm -SHA1 79f5b4199f622e8b05aac266b0c39f6a85bb303f inc/Module/Install/ReadmeFromPod.pm -SHA1 e4196994fa75e98bdfa2be0bdeeffef66de88171 inc/Module/Install/Win32.pm -SHA1 c3a6d0d5b84feb3280622e9599e86247d58b0d18 inc/Module/Install/WriteAll.pm -SHA1 dd0647d12510f67cb4969da92c8bb41bd500793f lib/Email/Address/List.pm -SHA1 2c008b60a3213c22fcd7db589456915db8d6825f t/basics.t -SHA1 d47c146488047eefa8f5ecbee1510f503d26c7c9 t/data/RFC5233.single.obs.json -SHA1 31183f86437e1a75001fe0b04dea12999881274c t/data/RFC5233.single.obs.txt -SHA1 1092a16b40cf7e979d4f234d041b342269cacbb8 t/data/RFC5233.single.valid.json -SHA1 ef4569d12c81789362ebe6d51591213ef160c1f7 t/data/RFC5233.single.valid.txt -SHA1 d8dda26c6e798fc201747c621f41d10f714575f9 t/generate.pl -SHA1 e261f8f0b71767ca094cce325eda1f1aba8dfd84 t/invalid.t -SHA1 22c9725a9feac3242072e4c5cff6a6d8a7b53e82 t/pathological.t -SHA1 8b01eef1e4a95ad6f4fd45153f60901d24fd1f5e t/random.combinations.t -SHA1 b749d9f357f04d94da250c484b753aecc1eb5b1c t/single.suit.t +SHA256 aaf5c1533cdd0df780e13a25bd83e1493f3e95b622d341067526b58cfcd2083b Changes +SHA256 9883fb41b524d22ad40d4ab5dc603b2dd2fa042bb0a6f37dad32899f9a112f33 MANIFEST +SHA256 cf35a42849719bb793fcbeae523de016bde7a66e30e1ef2b9b77f98ab00081ed META.yml +SHA256 76eb9ce69722da0c6093cd55ff8388fc28f26bb72283ff34676e4e3d453e6865 Makefile.PL +SHA256 0609f05b84cbe8baccc533e178f0de3e97f7455b0b251fdc0e1066dbc52318b6 README +SHA256 67d139199c03b8bf8447a5a62f0d0b6dc1bd5bf6dbe04de6d21998c577823ed6 inc/Module/Install.pm +SHA256 6ebcc53a161dd5dc0aae69e4704575f2b00181901d768a82e26722a309cfdbe4 inc/Module/Install/Base.pm +SHA256 d3f8c839d03fd21c197d05362dbb277cd7cadb15da6390d124b61e851f15146e inc/Module/Install/Can.pm +SHA256 e9e72e18921c10c87bc4ea4c20af83e52015b9f5775d00ac64073042403717ca inc/Module/Install/Fetch.pm +SHA256 a7a681bf2c9eee58a372cb642ffe42b0301d1200432ba8de9f7791cd1ecc9827 inc/Module/Install/Makefile.pm +SHA256 aa887fa65a5eb6bbd1805706ce298b3f3cd55b353ecfd37aa7d35ae419331a49 inc/Module/Install/Metadata.pm +SHA256 53825bc78e4c910b888160bc148c8bc211be58e02b99c8edcbf4854f95faa049 inc/Module/Install/ReadmeFromPod.pm +SHA256 26b166ff62aacdb55317d1659f160aa4935097eea9810ea980e6d747206b5dc0 inc/Module/Install/Win32.pm +SHA256 5f73a6851a91ea44e65b924f918743ad6e860620ad7a38a39d0295e0c5652a9f inc/Module/Install/WriteAll.pm +SHA256 f8cab72df4fd27df5d94407c29e31a7488ddd6da8ffaf2c69680ad74c6f7eafd lib/Email/Address/List.pm +SHA256 c9328d06f426124dae95d0692c55d4b01663ff3489615b2953f1a882bf7e83bd t/basics.t +SHA256 d46c79aa1f71a378d39c0a1c388480b3e2258dfbf96a2d2c37dbb21afafa62a5 t/data/RFC5233.single.obs.json +SHA256 9268997b5d59b1ed955984a33a9168e94755099073f4e5a36906261ceb723368 t/data/RFC5233.single.obs.txt +SHA256 9127918179049e3cc716a26e099cfd9858ac2b240ffd024cf603c1533d9bf6dd t/data/RFC5233.single.valid.json +SHA256 678c3ab4f307c69174613e72cb7076a62d6fb43b49cda43ad13d7ad09ff872b3 t/data/RFC5233.single.valid.txt +SHA256 08c9d5abb15ce0d3dfbe6d58f96986746a0ad330098871c443e9bb6e1a4c35ae t/generate.pl +SHA256 beb98a4d58c3e9ab75980f1d5b24d2b12c73c933148711b8e6dbf39855dc77bc t/invalid.t +SHA256 ad0c277b7e3305533c819240ad18d1da8d2dddb511b70f0f6e145922f6aefedc t/pathological.t +SHA256 e350edfad40192a7fb550b41910cf4058f8c07038a23c0244e286e91d7d2d252 t/random.combinations.t +SHA256 408434761070094eec1e888e0bb8c79ec3e7c4231d78e6f5b2ea9dc949a47561 t/single.suit.t -----BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.11 (GNU/Linux) -iEYEARECAAYFAlMBDQkACgkQMflWJZZAbqAqSQCfUHrof8hyCQ8vZlQ+4e3Bu+tx -pmsAoL6gz5r1uAMH/lju07RIdWNp0ZRl -=bcjr +iQEcBAEBAgAGBQJcUL7JAAoJEA3wooP+rICy40UH/jSPRa4knPj16Pvz+D8Cs2td +2mECeUfMZfg82bnDRbjzm+1NdA/pHOwHroOix6+X1lv0I1ybwHdgSKQFIYnBmQzL +VPkbqXJ751g1S8hT5BQLttMNaNDYdTTVdZIawibVHlhY99YiKzfy5uyZzQ8fqJsJ +K0IJl7ED4UQDlo52dSZUfZ+oX/rwXTbNofkoBY75hvXojNcJzH/8I2yFYfSCsMtm +KKF4NBKhwqxRJrFv7XZVY+ZIQBpc8ST/pTAvOEHKybUQrMJddmAa1DUKxJgVpSG+ +dl1QljjZW7CEZtj0Dsa80rhiOGzRPgMurv1M9v486hzZVu7h3aHggnJrzXdNn+Y= +=M3kp -----END PGP SIGNATURE-----