= Description = ## Please read this page. Lines prefixed with ## such as this one are comments, ## you can remove them (except for those after the "Plan" section.) ## Please follow the instructions given in those comments and the text. ## After creating the bug page, please subscribe to it! We may have questions ## that only you can answer, and if you get email when your bug changes it'll ## be much faster to get it fixed since you can answer the questions! xmlrpc_putPage in http://hg.moinmo.in/moin/1.6/file/02f68dc10be0/MoinMoin/xmlrpc/__init__.py does not escape the given page name and so on. Maybe it should be escaped in http://hg.moinmo.in/moin/1.6/file/02f68dc10be0/MoinMoin/Page.py Page.__init__(...) == Steps to reproduce == ## Describe the steps needed to reproduce the bug. If we can't reproduce it, we probably can't fix it. Following code (replace with your wiki address) : {{{#!python import xmlrpclib if __name__ == "__main__": url = "http:///?action=xmlrpc2" wiki = xmlrpclib.ServerProxy(url) print wiki.putPage("//\\\"","foobar") }}} Creates a page that can not be accessed via http:///RecentChanges And if you access it by other means all kind of ugly things happen. == Component selection == Again: xmlrpc_putPage in http://hg.moinmo.in/moin/1.6/file/02f68dc10be0/MoinMoin/xmlrpc/__init__.py does not escape the given page name and so on. Maybe it should be escaped in http://hg.moinmo.in/moin/1.6/file/02f68dc10be0/MoinMoin/Page.py Page.__init__(...) == Details == ## If you got a traceback, please save the traceback page as html and attach here: ## [[attachment:traceback.html]] ## if the bug is in this wiki, just kill the table and write: This Wiki. ## If a traceback is not available, please fill in the details here: || '''!MoinMoin Version''' || 1.6 || == Workaround == ## How to deal with the bug until it is fixed = Discussion = we need wikiutil.normalize_pagename {{{ diff -r da5a971ef2de MoinMoin/xmlrpc/__init__.py --- a/MoinMoin/xmlrpc/__init__.py Sun Nov 22 23:57:38 2009 +0100 +++ b/MoinMoin/xmlrpc/__init__.py Fri Nov 27 17:35:58 2009 +0100 @@ -531,7 +531,7 @@ """ pagename = self._instr(pagename) - + pagename = wikiutil.normalize_pagename(pagename, self.cfg) if not pagename: return xmlrpclib.Fault("INVALID", "pagename can't be empty") }}} = Plan = ## This part is for Moin``Moin developers: * Priority: * Assigned to: * Status: fixed by [[http://hg.moinmo.in/moin/1.9/rev/329241cd48b6|cs 5315:329241cd48b6]] ---- ## If you are a moin core developer, replace the category to Category* in these cases: ## Category MoinMoinNoBug - if this is not a bug. ## Category MoinMoinBugConfirmed - if you can confirm the bug on current code. ## Category MoinMoinBugFixed - after the bug is fixed in current code. CategoryMoinMoinBugFixed