diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-05-28 15:38:04 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-05-28 15:38:04 -0400 |
commit | d5d56a24bd49142f8d387adce6c8ca5292af1874 (patch) | |
tree | 7664428f198679f409cb0cc1c58abd87fee42e69 | |
parent | 67254135169cc57f4158f321b00964f250ca8d15 (diff) | |
download | ikiwiki-d5d56a24bd49142f8d387adce6c8ca5292af1874.tar ikiwiki-d5d56a24bd49142f8d387adce6c8ca5292af1874.tar.gz |
When calling decode_utf8 on known-problimatic content in aggregate, explicitly pass 0 (FB_DEFAULT) as the second parameter. Apparently perl 5.8 needs this to avoid crashing on malformed utf-8, despite its docs saying it is the default.
-rw-r--r-- | IkiWiki/Plugin/aggregate.pm | 4 | ||||
-rw-r--r-- | debian/changelog | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index a9c7447fa..e44c26f74 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -407,14 +407,14 @@ sub aggregate (@) { #{{{ # that contains invalid UTF-8 sequences. Convert # feed to ascii to try to work around. $feed->{message}.=" ".sprintf(gettext("(invalid UTF-8 stripped from feed)")); - $content=Encode::decode_utf8($content); + $content=Encode::decode_utf8($content, 0); $f=eval{XML::Feed->parse(\$content)}; } if ($@) { # Another possibility is badly escaped entities. $feed->{message}.=" ".sprintf(gettext("(feed entities escaped)")); $content=~s/\&(?!amp)(\w+);/&$1;/g; - $content=Encode::decode_utf8($content); + $content=Encode::decode_utf8($content, 0); $f=eval{XML::Feed->parse(\$content)}; } if ($@) { diff --git a/debian/changelog b/debian/changelog index 4b66aa697..1d9f18320 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,10 @@ ikiwiki (2.48) UNRELEASED; urgency=low * Add rel=nofollow to edit links. This may prevent some spiders from pounding on the cgi following edit links. + * When calling decode_utf8 on known-problimatic content in aggregate, + explicitly pass 0 (FB_DEFAULT) as the second parameter. Apparently perl + 5.8 needs this to avoid crashing on malformed utf-8, despite its docs + saying it is the default. -- Joey Hess <joeyh@debian.org> Wed, 28 May 2008 03:07:37 -0400 |