don't rely on $@
authorJoey Hess <joey@gnu.kitenet.net>
Wed, 17 Dec 2008 23:56:32 +0000 (18:56 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Wed, 17 Dec 2008 23:56:32 +0000 (18:56 -0500)
A malformed pagespec will cause $@ to be set when translated, but if
it is used a second time, the memoization will defeat that check. Better to
check for the result not being defined.

IkiWiki.pm

index d93ff7374069684a97e35c5626ec853e02d4ce47..2a3a84d9ae3586c529ae8e347f6c26107b15a413 100644 (file)
@@ -1797,7 +1797,8 @@ sub pagespec_match ($$;@) {
        }
 
        my $sub=pagespec_translate($spec);
        }
 
        my $sub=pagespec_translate($spec);
-       return IkiWiki::FailReason->new("syntax error in pagespec \"$spec\"") if $@;
+       return IkiWiki::FailReason->new("syntax error in pagespec \"$spec\"")
+               if $@ || ! defined $sub;
        return $sub->($page, @params);
 }
 
        return $sub->($page, @params);
 }