X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/22edaf77c2a4318ebd8ed0881dd6a62cfc2ca2b2..fb6e73b3698089f47ae63d1569225938699d84e1:/IkiWiki/Plugin/getsource.pm diff --git a/IkiWiki/Plugin/getsource.pm b/IkiWiki/Plugin/getsource.pm index 91c4cc1c9..d1555430e 100644 --- a/IkiWiki/Plugin/getsource.pm +++ b/IkiWiki/Plugin/getsource.pm @@ -42,19 +42,24 @@ sub pagetemplate (@) { sub cgi_getsource ($) { my $cgi=shift; - return unless (defined $cgi->param('do') && - $cgi->param("do") eq "getsource"); + return unless defined $cgi->param('do') && + $cgi->param("do") eq "getsource"; IkiWiki::decode_cgi_utf8($cgi); my $page=$cgi->param('page'); + if (! defined $page || $page !~ /$config{wiki_file_regexp}/) { + error("invalid page parameter"); + } + # For %pagesources. IkiWiki::loadindex(); if (! exists $pagesources{$page}) { IkiWiki::cgi_custom_failure( - $cgi->header(-status => "404 Not Found"), + $cgi, + "404 Not Found", IkiWiki::misctemplate(gettext("missing page"), "

". sprintf(gettext("The page %s does not exist."),