search: Avoid '$' in the wikiname appearing unescaped on omega's query template, where it might crash omega.

Really, a more general fix, this deals with any $ that might appear on the
misctemplate.
master
Joey Hess 2010-03-11 16:10:04 -05:00
parent f259f33a0a
commit 45dfdcb257
3 changed files with 21 additions and 2 deletions

View File

@ -110,6 +110,7 @@ sub index (@) {
# data used by omega
# Decode html entities in it, since omega re-encodes them.
eval q{use HTML::Entities};
error $@ if $@;
$doc->set_data(
"url=".urlto($params{page}, "")."\n".
"sample=".decode_entities($sample)."\n".
@ -214,9 +215,19 @@ sub setupfiles () {
writefile("omega.conf", $config{wikistatedir}."/xapian",
"database_dir .\n".
"template_dir ./templates\n");
# Avoid omega interpreting anything in the misctemplate
# as an omegascript command.
my $misctemplate=IkiWiki::misctemplate(gettext("search"), "\0");
eval q{use HTML::Entities};
error $@ if $@;
$misctemplate=encode_entities($misctemplate, '\$');
my $querytemplate=readfile(IkiWiki::template_file("searchquery.tmpl"));
$misctemplate=~s/\0/$querytemplate/;
writefile("query", $config{wikistatedir}."/xapian/templates",
IkiWiki::misctemplate(gettext("search"),
readfile(IkiWiki::template_file("searchquery.tmpl"))));
$misctemplate);
$setup=1;
}
}

2
debian/changelog vendored
View File

@ -10,6 +10,8 @@ ikiwiki (3.20100303) UNRELEASED; urgency=low
* moderatedcomments: The moderate_users setting is deprecated. Instead,
set moderate_pagespec to "!admin()" or "user(*)" instead.
* Fix missing span on recentchanges page template.
* search: Avoid '$' in the wikiname appearing unescaped on omega's
query template, where it might crash omega.
-- Joey Hess <joeyh@debian.org> Tue, 09 Mar 2010 19:46:35 -0500

View File

@ -50,3 +50,9 @@ What might be causing this exception and how I might go about debugging exceptio
<IMG ALT="" SRC="/images/xapian-omega/prevoff.png" HEIGHT=30 WIDTH=30>}
>>>>>> So `$foobar` clashes with Omega's template tags. Does this help?
>>>>>>> Ahh. I had somehow gotten it into my head that you were talking
>>>>>>> about the title of a single page, not of the whole wiki. But
>>>>>>> you were clear all along it was the wiki title. Sorry for
>>>>>>> misunderstanding. I've put in a complete fix for this problem.
>>>>>>> if this was in [[bugs]], I'd close it. :) --[[Joey]]