From 7d7f85bbb5ec48a193973ef2dbe6d78a2f4f8ea8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 24 Apr 2008 13:49:15 -0400 Subject: [PATCH] Correct a bug in pagespec matching, where a empty pagespec matched all pages. This manifested as wikis with no locked pages treating them all as locked. The bug was introduced in version 2.41. Medium urgency upload due to above fix. --- IkiWiki.pm | 4 ++++ debian/changelog | 6 +++++- t/pagespec_match.t | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/IkiWiki.pm b/IkiWiki.pm index 68047b9b9..3802559a5 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1247,6 +1247,10 @@ sub pagespec_translate ($) { #{{{ } } + if (! length $code) { + $code=0; + } + return eval 'sub { my $page=shift; '.$code.' }'; } #}}} diff --git a/debian/changelog b/debian/changelog index b6e477a3c..d851f35f6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,13 @@ -ikiwiki (2.44) UNRELEASED; urgency=low +ikiwiki (2.44) unstable; urgency=medium * Bring back the svnrepo setup file option. This is needed for recentchangediff to work with svn repos. * Allow libtext-markdown-perl to satisfy dependencies, as a an alternative to the markdown package. + * Correct a bug in pagespec matching, where a empty pagespec matched all + pages. This manifested as wikis with no locked pages treating them all as + locked. The bug was introduced in version 2.41. + * Medium urgency upload due to above fix. -- Joey Hess Thu, 17 Apr 2008 14:33:54 -0400 diff --git a/t/pagespec_match.t b/t/pagespec_match.t index 038472967..ee255b471 100755 --- a/t/pagespec_match.t +++ b/t/pagespec_match.t @@ -1,7 +1,7 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More tests => 52; +use Test::More tests => 54; BEGIN { use_ok("IkiWiki"); } @@ -51,6 +51,8 @@ ok(pagespec_match("examples/softwaresite/bugs/fails_to_frobnicate", ok(! pagespec_match("foo", "link(./bar)", location => "foo/bar"), "link relative fail"); ok(pagespec_match("bar", "backlink(foo)"), "backlink"); ok(! pagespec_match("quux", "backlink(foo)"), "failed backlink"); +ok(! pagespec_match("bar", ""), "empty pagespec should match nothing"); +ok(! pagespec_match("bar", " "), "blank pagespec should match nothing"); $IkiWiki::pagectime{foo}=1154532692; # Wed Aug 2 11:26 EDT 2006 $IkiWiki::pagectime{bar}=1154532695; # after -- 2.44.0