Dear release team, There is a problem with the perl package, as discussed in <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=695224#55> onwards, whereby the application of the security fix in that ticket now causes double-escaping problems where people workaround the problem by escaping themselves, when they detect an earlier Locale::Maketext by version number.
I am slightly wary about importing the new (1.23) version of Locale::Maketext as I mentioned in that bug already, but my fears may be unfounded. Could you comment about whether you would accept such a change in wheezy at this time? (I can't really decide whether it's RC or not). I've attached a diff which implements the change in question. I haven't carried out extensive testing yet, but the package builds fine. The same change is in the dom/locale-maketext-version branch of the git repository at <http://anonscm.debian.org/gitweb/?p=perl/perl.git>. Note that if you approve this, I would still want to get feedback from Niko, co-maintainer of the perl pacakge, before an upload. This also affects stable, and so I've also CCed the security team (the problem was introduced in a DSA). Thanks as always for your excellent work (especially during the freeze) and apologies for bringing such a thorny issue to you this close to release. Dominic. -- Dominic Hargreaves | http://www.larted.org.uk/~dom/ PGP key 5178E2A5 from the.earth.li (keyserver,web,email)
diff --git a/debian/.git-dpm b/debian/.git-dpm index 2a4791b..c8c980a 100644 --- a/debian/.git-dpm +++ b/debian/.git-dpm @@ -1,6 +1,6 @@ # see git-dpm(1) from git-dpm package -89405c8ebc5bf8ae4ed6479de2bc0f311c1f6fe1 -89405c8ebc5bf8ae4ed6479de2bc0f311c1f6fe1 +93f6c83c7454de33df00a0e3fde3a890d6c87e91 +93f6c83c7454de33df00a0e3fde3a890d6c87e91 5f99bf7a09dd2ae3c22081331f4973210a543731 5f99bf7a09dd2ae3c22081331f4973210a543731 perl_5.14.2.orig.tar.bz2 diff --git a/debian/changelog b/debian/changelog index dd05cd9..e306117 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +perl (5.14.2-21) UNRELEASED; urgency=low + + * Update the Locale::Maketext fix by importing 1.23, to avoid + double-escaping problems (see: #695224) + + -- Dominic Hargreaves <d...@earth.li> Sun, 31 Mar 2013 13:58:59 +0100 + perl (5.14.2-20) unstable; urgency=low * Fix an Encode memory leak that occurred in the UTF-8 encoding. diff --git a/debian/patches/fixes/64bitint-signedness-wraparound.diff b/debian/patches/fixes/64bitint-signedness-wraparound.diff index cae0b3d..edeaf9e 100644 --- a/debian/patches/fixes/64bitint-signedness-wraparound.diff +++ b/debian/patches/fixes/64bitint-signedness-wraparound.diff @@ -1,4 +1,4 @@ -From e36d65ba661bd0f9c9ae741c8f18d2e08682e97a Mon Sep 17 00:00:00 2001 +From 3e75c3189622c59ded9070bf678ef42f8185961a Mon Sep 17 00:00:00 2001 From: Andy Dougherty <dough...@lafayette.edu> Date: Wed, 16 Jan 2013 12:30:43 -0500 Subject: Avoid wraparound when casting unsigned size_t to signed ssize_t. diff --git a/debian/patches/fixes/digest-sha-doublefree.diff b/debian/patches/fixes/digest-sha-doublefree.diff index c49a84a..b9a1e12 100644 --- a/debian/patches/fixes/digest-sha-doublefree.diff +++ b/debian/patches/fixes/digest-sha-doublefree.diff @@ -1,4 +1,4 @@ -From d2d9e1560afaeb402dda69eba1d6e808d80c0c96 Mon Sep 17 00:00:00 2001 +From 0c6c3e57ab9ee86fbce162071dce1c2748a494b5 Mon Sep 17 00:00:00 2001 From: Niko Tyni <nt...@debian.org> Date: Fri, 25 Jan 2013 15:00:00 +0200 Subject: Fix a double-free bug in Digest::SHA diff --git a/debian/patches/fixes/encode-memleak.diff b/debian/patches/fixes/encode-memleak.diff index b30e6d0..baed27f 100644 --- a/debian/patches/fixes/encode-memleak.diff +++ b/debian/patches/fixes/encode-memleak.diff @@ -1,4 +1,4 @@ -From 89405c8ebc5bf8ae4ed6479de2bc0f311c1f6fe1 Mon Sep 17 00:00:00 2001 +From 93f6c83c7454de33df00a0e3fde3a890d6c87e91 Mon Sep 17 00:00:00 2001 From: chansen <chan...@cpan.org> Date: Sun, 3 Mar 2013 22:43:53 +0100 Subject: Encode: Fixed a memory leak that occurred in the UTF-8 encoding. diff --git a/debian/patches/fixes/hsplit-rehash.diff b/debian/patches/fixes/hsplit-rehash.diff index c2fd7e2..ba235f7 100644 --- a/debian/patches/fixes/hsplit-rehash.diff +++ b/debian/patches/fixes/hsplit-rehash.diff @@ -1,4 +1,4 @@ -From 5d86bf622ad5ac2cc69da54d76000a4618518410 Mon Sep 17 00:00:00 2001 +From ac695b3c3106de8292c4200c84ab4c57b6998b73 Mon Sep 17 00:00:00 2001 From: Yves Orton <demer...@gmail.com> Date: Tue, 12 Feb 2013 10:53:05 +0100 Subject: Prevent premature hsplit() calls, and only trigger REHASH after diff --git a/debian/patches/fixes/maketext-code-execution.diff b/debian/patches/fixes/maketext-code-execution.diff index 117ef2d..b781de9 100644 --- a/debian/patches/fixes/maketext-code-execution.diff +++ b/debian/patches/fixes/maketext-code-execution.diff @@ -1,4 +1,4 @@ -From 9da6928f4cbc7cfa3c2c474b00042a51083e12af Mon Sep 17 00:00:00 2001 +From 97aa10fd1926ed8299448eb69f70c01546918d15 Mon Sep 17 00:00:00 2001 From: Brian Carlson <brian.carl...@cpanel.net> Date: Wed, 28 Nov 2012 08:54:33 -0500 Subject: Fix misparsing of maketext strings. @@ -10,17 +10,79 @@ inside the content or die on fully-qualified method names when generating the code. This change escapes all such backslashes and dies when a method name with a colon or apostrophe is specified. +This is an updated version of the patch which upgrades Locale::Maketext to +1.23, to avoid double-escaping problems for callers who work around the +problem with older versions. + Bug-Debian: http://bugs.debian.org/695224 Origin: http://perl5.git.perl.org/perl.git/commit/1735f6f53ca19f99c6e9e39496c486af323ba6a8 Patch-Name: fixes/maketext-code-execution.diff --- - dist/Locale-Maketext/lib/Locale/Maketext.pm | 24 ++++++++---------------- - 1 file changed, 8 insertions(+), 16 deletions(-) + dist/Locale-Maketext/ChangeLog | 29 ++++++++++++++++++++ + dist/Locale-Maketext/lib/Locale/Maketext.pm | 26 ++++++------------ + dist/Locale-Maketext/lib/Locale/Maketext.pod | 13 +++++++-- + dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm | 2 +- + .../lib/Locale/Maketext/GutsLoader.pm | 2 +- + dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod | 4 +-- + dist/Locale-Maketext/t/00_load.t | 11 ++++++++ + dist/Locale-Maketext/t/09_compile.t | 11 +++++--- + dist/Locale-Maketext/t/pod.t | 8 ++++++ + 9 files changed, 79 insertions(+), 27 deletions(-) + create mode 100644 dist/Locale-Maketext/t/00_load.t + create mode 100644 dist/Locale-Maketext/t/pod.t +diff --git a/dist/Locale-Maketext/ChangeLog b/dist/Locale-Maketext/ChangeLog +index 3a28d09..aaa0eb8 100644 +--- a/dist/Locale-Maketext/ChangeLog ++++ b/dist/Locale-Maketext/ChangeLog +@@ -1,5 +1,34 @@ + Revision history for Perl suite Locale::Maketext + ++2012-12-04 ++ * Fix misparsing of maketext strings. ++ ++2012-11-22 ++ * Fix hash order dependcy bug in tests ++ ++2012-01-14 ++ * Minor POD documentation update to sync with upstream blead. ++ ++2011-12-23 ++ * No changes. Production release after CPAN testers cleared. ++ ++2011-12-14 ++ * Update to 1.19_01 from upstream blead for release testing ++ ++ Fix broken URLs in dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod for RFCs ++ ++ Keep verbatim pod in various dist/* pods within 79 cols ++ ++2011-05-25 ++ * Update to 1.19 from upstream blead ++ ++ [perl #89896] Locale::Maketext test failure ++ when environment has variable containing unbalanced brackets ++ ++ Suppress "Name used only once" warnings. ++ ++ [perl #81888] Fix typos (spelling errors) in dist/* ++ + 2010-10-20 + * Release 1.17 + diff --git a/dist/Locale-Maketext/lib/Locale/Maketext.pm b/dist/Locale-Maketext/lib/Locale/Maketext.pm -index af5d21a..5cf7cb1 100644 +index af5d21a..63e5fba 100644 --- a/dist/Locale-Maketext/lib/Locale/Maketext.pm +++ b/dist/Locale-Maketext/lib/Locale/Maketext.pm +@@ -27,7 +27,7 @@ BEGIN { + } + + +-$VERSION = '1.19'; ++$VERSION = '1.23'; + @ISA = (); + + $MATCH_SUPERS = 1; @@ -625,21 +625,9 @@ sub _compile { # 0-length method name means to just interpolate: push @code, ' ('; @@ -67,3 +129,141 @@ index af5d21a..5cf7cb1 100644 } } } +diff --git a/dist/Locale-Maketext/lib/Locale/Maketext.pod b/dist/Locale-Maketext/lib/Locale/Maketext.pod +index 14b47c8..3ef9c3a 100644 +--- a/dist/Locale-Maketext/lib/Locale/Maketext.pod ++++ b/dist/Locale-Maketext/lib/Locale/Maketext.pod +@@ -166,7 +166,8 @@ file, you might consider something like this in your project class: + my $lh; + if($chosen_language) { + $lh = $class->get_handle($chosen_language) +- || die "No language handle for \"$chosen_language\" or the like"; ++ || die "No language handle for \"$chosen_language\"" ++ . " or the like"; + } else { + # Config file missing, maybe? + $lh = $class->get_handle() +@@ -385,6 +386,14 @@ entirely. + Note that numf is called by quant for stringifying all quantifying + numbers. + ++=item $language->numerate($number, $singular, $plural, $negative) ++ ++This returns the given noun form which is appropriate for the quantity ++C<$number> according to this language's conventions. C<numerate> is ++used internally by C<quant> to quantify nouns. Use it directly -- ++usually from bracket notation -- to avoid C<quant>'s implicit call to ++C<numf> and output of a numeric quantity. ++ + =item $language->sprintf($format, @items) + + This is just a wrapper around Perl's normal C<sprintf> function. +@@ -1244,7 +1253,7 @@ to infer the plural form from the singular. + + But for other languages (as is discussed at length + in L<Locale::Maketext::TPJ13|Locale::Maketext::TPJ13>), simple +-C<quant>/C<numerify> is not enough. For the particularly problematic ++C<quant>/C<numf> is not enough. For the particularly problematic + Slavic languages, what you may need is a method which you provide + with the number, the citation form of the noun to quantify, and + the case and gender that the sentence's syntax projects onto that +diff --git a/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm b/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm +index 75c993c..9e78c7e 100644 +--- a/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm ++++ b/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm +@@ -2,7 +2,7 @@ package Locale::Maketext::Guts; + + use Locale::Maketext; + +-our $VERSION = '1.17'; ++our $VERSION = '1.20'; + + =head1 NAME + +diff --git a/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm b/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm +index 858fcf7..35a71ab 100644 +--- a/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm ++++ b/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm +@@ -2,7 +2,7 @@ package Locale::Maketext::GutsLoader; + + use Locale::Maketext; + +-our $VERSION = '1.17'; ++our $VERSION = '1.20'; + + sub zorp { return scalar @_ } + +diff --git a/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod b/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod +index 0bbe6e3..b9586b2 100644 +--- a/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod ++++ b/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod +@@ -750,12 +750,12 @@ morphology and pedagogy of North American native languages. + + Alvestrand, Harald Tveit. 1995. I<RFC 1766: Tags for the + Identification of Languages.> +-C<ftp://ftp.isi.edu/in-notes/rfc1766.txt> ++C<http://www.ietf.org/rfc/rfc1766.txt> + [Now see RFC 3066.] + + Callon, Ross, editor. 1996. I<RFC 1925: The Twelve + Networking Truths.> +-C<ftp://ftp.isi.edu/in-notes/rfc1925.txt> ++C<http://www.ietf.org/rfc/rfc1925.txt> + + Drepper, Ulrich, Peter Miller, + and FranE<ccedil>ois Pinard. 1995-2001. GNU +diff --git a/dist/Locale-Maketext/t/00_load.t b/dist/Locale-Maketext/t/00_load.t +new file mode 100644 +index 0000000..19abdba +--- /dev/null ++++ b/dist/Locale-Maketext/t/00_load.t +@@ -0,0 +1,11 @@ ++#!perl -Tw ++ ++use warnings; ++use strict; ++use Test::More tests => 3; ++ ++use_ok( 'Locale::Maketext' ); ++use_ok( 'Locale::Maketext::Guts' ); ++use_ok( 'Locale::Maketext::GutsLoader' ); ++ ++diag( "Testing Locale::Maketext $Locale::Maketext::VERSION with Perl $], $^X" ); +diff --git a/dist/Locale-Maketext/t/09_compile.t b/dist/Locale-Maketext/t/09_compile.t +index 06db484..93988e5 100644 +--- a/dist/Locale-Maketext/t/09_compile.t ++++ b/dist/Locale-Maketext/t/09_compile.t +@@ -8,12 +8,15 @@ use Test::More tests => 2; + use Scalar::Util qw(tainted); + use Locale::Maketext; + +-my @ENV_values = values %ENV; +-my $tainted_value; +-do { $tainted_value = shift @ENV_values } while(!$tainted_value || ref $tainted_value); ++my @ENV_values = map { !/^PERL/ && defined($ENV{$_}) && !ref($ENV{$_}) && $ENV{$_} ? $ENV{$_} : () } sort keys %ENV; ++die "No %ENV vars to test?" if !@ENV_values; ++ ++my ($tainted_value)= @ENV_values; + $tainted_value =~ s/([\[\]])/~$1/g; + +-ok(tainted($tainted_value), "\$tainted_value is tainted") or die('huh... %ENV has no entries? I don\'t know how to test taint without it'); ++# If ${^TAINT} is not set despite -T, this perl doesn't have taint support ++ok(!${^TAINT} || tainted($tainted_value), "\$tainted_value is tainted") ++ or die("Could not find tainted value to use for testing (maybe fix the test?)"); + + my $result = Locale::Maketext::_compile("hello [_1]", $tainted_value); + +diff --git a/dist/Locale-Maketext/t/pod.t b/dist/Locale-Maketext/t/pod.t +new file mode 100644 +index 0000000..a0f6a50 +--- /dev/null ++++ b/dist/Locale-Maketext/t/pod.t +@@ -0,0 +1,8 @@ ++#!perl -Tw ++ ++use warnings; ++use strict; ++use Test::More; ++eval 'use Test::Pod 1.14'; ++plan skip_all => 'Test::Pod 1.14 required for testing POD' if $@; ++all_pod_files_ok(); diff --git a/debian/patches/fixes/stdin-sigchld.diff b/debian/patches/fixes/stdin-sigchld.diff index 6081e17..ba0bb27 100644 --- a/debian/patches/fixes/stdin-sigchld.diff +++ b/debian/patches/fixes/stdin-sigchld.diff @@ -1,4 +1,4 @@ -From 417f9aa4b23699c6214978eef4c71f5c0ac1fd68 Mon Sep 17 00:00:00 2001 +From 1d95aa96823a930a9c4aa54baa4f23e956b145b8 Mon Sep 17 00:00:00 2001 From: Chip <c...@pobox.com> Date: Mon, 19 Sep 2011 23:51:49 -0700 Subject: add a couple missing LEAVEs in perlio_async_run() diff --git a/debian/patches/fixes/storable-security-warning.diff b/debian/patches/fixes/storable-security-warning.diff index 0162c4e..df6287a 100644 --- a/debian/patches/fixes/storable-security-warning.diff +++ b/debian/patches/fixes/storable-security-warning.diff @@ -1,4 +1,4 @@ -From 41d3609d4a091d21891059a2f44930c8a8c461fe Mon Sep 17 00:00:00 2001 +From 7e5ce09f7249436c0e4a875912886dba9a25a4a5 Mon Sep 17 00:00:00 2001 From: Steffen Mueller <smuel...@cpan.org> Date: Fri, 30 Nov 2012 23:03:09 -0500 Subject: add a note about security concerns in Storable diff --git a/dist/Locale-Maketext/ChangeLog b/dist/Locale-Maketext/ChangeLog index 3a28d09..aaa0eb8 100644 --- a/dist/Locale-Maketext/ChangeLog +++ b/dist/Locale-Maketext/ChangeLog @@ -1,5 +1,34 @@ Revision history for Perl suite Locale::Maketext +2012-12-04 + * Fix misparsing of maketext strings. + +2012-11-22 + * Fix hash order dependcy bug in tests + +2012-01-14 + * Minor POD documentation update to sync with upstream blead. + +2011-12-23 + * No changes. Production release after CPAN testers cleared. + +2011-12-14 + * Update to 1.19_01 from upstream blead for release testing + + Fix broken URLs in dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod for RFCs + + Keep verbatim pod in various dist/* pods within 79 cols + +2011-05-25 + * Update to 1.19 from upstream blead + + [perl #89896] Locale::Maketext test failure + when environment has variable containing unbalanced brackets + + Suppress "Name used only once" warnings. + + [perl #81888] Fix typos (spelling errors) in dist/* + 2010-10-20 * Release 1.17 diff --git a/dist/Locale-Maketext/lib/Locale/Maketext.pm b/dist/Locale-Maketext/lib/Locale/Maketext.pm index 5cf7cb1..63e5fba 100644 --- a/dist/Locale-Maketext/lib/Locale/Maketext.pm +++ b/dist/Locale-Maketext/lib/Locale/Maketext.pm @@ -27,7 +27,7 @@ BEGIN { } -$VERSION = '1.19'; +$VERSION = '1.23'; @ISA = (); $MATCH_SUPERS = 1; diff --git a/dist/Locale-Maketext/lib/Locale/Maketext.pod b/dist/Locale-Maketext/lib/Locale/Maketext.pod index 14b47c8..3ef9c3a 100644 --- a/dist/Locale-Maketext/lib/Locale/Maketext.pod +++ b/dist/Locale-Maketext/lib/Locale/Maketext.pod @@ -166,7 +166,8 @@ file, you might consider something like this in your project class: my $lh; if($chosen_language) { $lh = $class->get_handle($chosen_language) - || die "No language handle for \"$chosen_language\" or the like"; + || die "No language handle for \"$chosen_language\"" + . " or the like"; } else { # Config file missing, maybe? $lh = $class->get_handle() @@ -385,6 +386,14 @@ entirely. Note that numf is called by quant for stringifying all quantifying numbers. +=item $language->numerate($number, $singular, $plural, $negative) + +This returns the given noun form which is appropriate for the quantity +C<$number> according to this language's conventions. C<numerate> is +used internally by C<quant> to quantify nouns. Use it directly -- +usually from bracket notation -- to avoid C<quant>'s implicit call to +C<numf> and output of a numeric quantity. + =item $language->sprintf($format, @items) This is just a wrapper around Perl's normal C<sprintf> function. @@ -1244,7 +1253,7 @@ to infer the plural form from the singular. But for other languages (as is discussed at length in L<Locale::Maketext::TPJ13|Locale::Maketext::TPJ13>), simple -C<quant>/C<numerify> is not enough. For the particularly problematic +C<quant>/C<numf> is not enough. For the particularly problematic Slavic languages, what you may need is a method which you provide with the number, the citation form of the noun to quantify, and the case and gender that the sentence's syntax projects onto that diff --git a/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm b/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm index 75c993c..9e78c7e 100644 --- a/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm +++ b/dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm @@ -2,7 +2,7 @@ package Locale::Maketext::Guts; use Locale::Maketext; -our $VERSION = '1.17'; +our $VERSION = '1.20'; =head1 NAME diff --git a/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm b/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm index 858fcf7..35a71ab 100644 --- a/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm +++ b/dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm @@ -2,7 +2,7 @@ package Locale::Maketext::GutsLoader; use Locale::Maketext; -our $VERSION = '1.17'; +our $VERSION = '1.20'; sub zorp { return scalar @_ } diff --git a/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod b/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod index 0bbe6e3..b9586b2 100644 --- a/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod +++ b/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod @@ -750,12 +750,12 @@ morphology and pedagogy of North American native languages. Alvestrand, Harald Tveit. 1995. I<RFC 1766: Tags for the Identification of Languages.> -C<ftp://ftp.isi.edu/in-notes/rfc1766.txt> +C<http://www.ietf.org/rfc/rfc1766.txt> [Now see RFC 3066.] Callon, Ross, editor. 1996. I<RFC 1925: The Twelve Networking Truths.> -C<ftp://ftp.isi.edu/in-notes/rfc1925.txt> +C<http://www.ietf.org/rfc/rfc1925.txt> Drepper, Ulrich, Peter Miller, and FranE<ccedil>ois Pinard. 1995-2001. GNU diff --git a/dist/Locale-Maketext/t/00_load.t b/dist/Locale-Maketext/t/00_load.t new file mode 100644 index 0000000..19abdba --- /dev/null +++ b/dist/Locale-Maketext/t/00_load.t @@ -0,0 +1,11 @@ +#!perl -Tw + +use warnings; +use strict; +use Test::More tests => 3; + +use_ok( 'Locale::Maketext' ); +use_ok( 'Locale::Maketext::Guts' ); +use_ok( 'Locale::Maketext::GutsLoader' ); + +diag( "Testing Locale::Maketext $Locale::Maketext::VERSION with Perl $], $^X" ); diff --git a/dist/Locale-Maketext/t/09_compile.t b/dist/Locale-Maketext/t/09_compile.t index 06db484..93988e5 100644 --- a/dist/Locale-Maketext/t/09_compile.t +++ b/dist/Locale-Maketext/t/09_compile.t @@ -8,12 +8,15 @@ use Test::More tests => 2; use Scalar::Util qw(tainted); use Locale::Maketext; -my @ENV_values = values %ENV; -my $tainted_value; -do { $tainted_value = shift @ENV_values } while(!$tainted_value || ref $tainted_value); +my @ENV_values = map { !/^PERL/ && defined($ENV{$_}) && !ref($ENV{$_}) && $ENV{$_} ? $ENV{$_} : () } sort keys %ENV; +die "No %ENV vars to test?" if !@ENV_values; + +my ($tainted_value)= @ENV_values; $tainted_value =~ s/([\[\]])/~$1/g; -ok(tainted($tainted_value), "\$tainted_value is tainted") or die('huh... %ENV has no entries? I don\'t know how to test taint without it'); +# If ${^TAINT} is not set despite -T, this perl doesn't have taint support +ok(!${^TAINT} || tainted($tainted_value), "\$tainted_value is tainted") + or die("Could not find tainted value to use for testing (maybe fix the test?)"); my $result = Locale::Maketext::_compile("hello [_1]", $tainted_value); diff --git a/dist/Locale-Maketext/t/pod.t b/dist/Locale-Maketext/t/pod.t new file mode 100644 index 0000000..a0f6a50 --- /dev/null +++ b/dist/Locale-Maketext/t/pod.t @@ -0,0 +1,8 @@ +#!perl -Tw + +use warnings; +use strict; +use Test::More; +eval 'use Test::Pod 1.14'; +plan skip_all => 'Test::Pod 1.14 required for testing POD' if $@; +all_pod_files_ok();