This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make Pod::Html more robust against malformed L<> contents.
authorNicholas Clark <nick@ccl4.org>
Tue, 10 Jan 2012 14:43:55 +0000 (15:43 +0100)
committerNicholas Clark <nick@ccl4.org>
Tue, 17 Jan 2012 10:16:35 +0000 (11:16 +0100)
Pod::Html attempts to search for the contents to see if they are a suffix
of any entry in an existing list, using a regular expression.
Previously the contents were interpolated directly into a regex, which
meant that if they happened to be syntactically invalid regular expression
syntax, Pod::Html aborted with a runtime error.

ext/Pod-Html/lib/Pod/Html.pm
pod/perldelta.pod

index 5ae242b..4441742 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 require Exporter;
 
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = 1.12;
+$VERSION = 1.13;
 @ISA = qw(Exporter);
 @EXPORT = qw(pod2html htmlify);
 @EXPORT_OK = qw(anchorify);
@@ -571,7 +571,7 @@ sub resolve_pod_page_link {
         # as a substitute (e.g., $Podpath/Pod/Simple/XHTML)
         my @matches;
         foreach my $modname (keys %{$self->pages}) {
-            push @matches, $modname if $modname =~ /::$to\z/;
+            push @matches, $modname if $modname =~ /::\Q$to\E\z/;
         }
 
         if ($#matches == -1) {
index 477ba85..e3a75de 100644 (file)
@@ -266,6 +266,10 @@ hold a number internally, but no string buffer.
 
 =item *
 
+L<Pod::Html> has been upgraded from version 1.12 to 1.13
+
+=item *
+
 L<POSIX> has been upgraded from version 1.27 to version 1.29.
 
 C<sigsuspend> and C<pause> now run signals handle before returning, as the