From: Joey Hess Date: Mon, 17 Mar 2008 18:04:59 +0000 (-0400) Subject: * Detect invalid pagespecs and do not merge them in add_depends, X-Git-Tag: 2.41~86 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/8a29361c321b54607ba5b4a7675508325b450110 * Detect invalid pagespecs and do not merge them in add_depends, as that can result in a broken merged pagespec that matches nothing. --- diff --git a/IkiWiki.pm b/IkiWiki.pm index 668de7e93..bd804269d 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1106,6 +1106,8 @@ sub add_depends ($$) { #{{{ my $page=shift; my $pagespec=shift; + return unless pagespec_valid($pagespec); + if (! exists $depends{$page}) { $depends{$page}=$pagespec; } @@ -1234,6 +1236,17 @@ sub pagespec_match ($$;@) { #{{{ return $ret; } #}}} +sub pagespec_valid ($) { #{{{ + my $spec=shift; + + # used by generated code + my $page=""; + my @params; + + eval pagespec_translate($spec); + return ! $@; +} #}}} + package IkiWiki::FailReason; use overload ( #{{{ diff --git a/debian/changelog b/debian/changelog index c9fd64a2a..dc950790f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -45,6 +45,8 @@ ikiwiki (2.41) UNRELEASED; urgency=low * external: Add getargv and setargv methods to allow access to ikiwiki's @ARGV. * Correct bug in encoding of %pagestate keys, fixes edittemplate. + * Detect invalid pagespecs and do not merge them in add_depends, + as that can result in a broken merged pagespec that matches nothing. -- martin f. krafft Sun, 02 Mar 2008 17:46:38 +0100