Priority: Urgent
Current State: Closed
Released In: 1.1.4
Target Release: patch
Applies To: Engine
Component:
Branches:
I have a Foswiki configured with
{Site}{CharSet} = 'utf-8';
.
This code in Render.pm:
use bytes;
$user =~ s/_([0-9a-f][0-9a-f])/chr(hex($1))/ge;
no bytes;
Causes massive amounts of hellfire in my error logs, and some pages that refuse to reunder (Error 500: "Malformed UTF-8 character (unexpected continuation byte 0x99...)
On any topic that doesn't have a TOPICINFO (so most of those in System). Example:
ReleaseNotes01x01 - has no TOPICINFO - and the
$info->{author}
turns out to be
BaseUserMapping_666
. However, the code above transforms the 666 into \x66, 6 - mangling the name, and crashing Foswiki if there's any regex applied to the result (Eg.
Foswiki::Attrs
can't even process a macro argument containing an
$wikiusername
from
SEARCH).
Thanks to
CrawfordCurrie, Sven & Olivier for an initial analysis on IRC...
--
PaulHarvey - 17 May 2011
The work-around as Crawford suggested is to enable {RenderLoggedInButUnknownUsers} in
LocalSite.cfg
--
PaulHarvey - 17 May 2011
crashes when you got to a
WebChanges that contains a topic like that.
--
SvenDowideit - 07 Jun 2011
I've fixed it in Render.pm, but really, creating a 'display value default' should not be in Render.pm, but in the Mapper code.
but then again, the mangle/de-mangle is terrible wherever we put it - if a custom mapper does it differently, and then is uninstalled, we lose again
ok, so i have to think again - but the commit should still stop crashyness
better fix applied later.
--
SvenDowideit - 07 Jun 2011
Thankyou!
--
PaulHarvey - 07 Jun 2011