From: Joey Hess Date: Wed, 10 Mar 2010 00:55:19 +0000 (-0500) Subject: Fix utf8 issues in calls to md5_hex. X-Git-Tag: 3.20100312~17 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/6d27bbd026ebed85f8501b6b4daefaba73061574?ds=sidebyside;hp=fa6d082955dbc75de62839e285c0d441cd83acb1 Fix utf8 issues in calls to md5_hex. This prevented comments containing some utf-8, including euro sign, from being submitted. Since md5_hex is a C implementation, the string has to be converted from perl's internal encoding to utf-8 when it is called. Some utf-8 happened to work before, apparently by accident. Note that this will change the checksums returned. unique_comment_location is only used when posting comments, so the checksum does not need to be stable there. I only changed page_to_id for completeness; it is passed a comment page name, and they can currently never contain utf-8. In teximg, the bug could perhaps be triggered if the tex source contained utf-8. If that happens, the checksum will change, and some extra work might be performed on upgrade to rebuild the image. --- diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index 8f8472f07..bbf850a17 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -839,7 +839,7 @@ sub unique_comment_location ($$$) { eval q{use Digest::MD5 'md5_hex'}; error($@) if $@; - my $content_md5=md5_hex(shift); + my $content_md5=md5_hex(Encode::encode_utf8(shift)); my $dir=shift; @@ -862,7 +862,7 @@ sub page_to_id ($) { eval q{use Digest::MD5 'md5_hex'}; error($@) if $@; - return "comment-".md5_hex($page); + return "comment-".md5_hex(Encode::encode_utf8(($page)); } package IkiWiki::PageSpec; diff --git a/IkiWiki/Plugin/teximg.pm b/IkiWiki/Plugin/teximg.pm index 0aaa79698..521af499f 100644 --- a/IkiWiki/Plugin/teximg.pm +++ b/IkiWiki/Plugin/teximg.pm @@ -8,6 +8,7 @@ use strict; use Digest::MD5 qw(md5_hex); use File::Temp qw(tempdir); use HTML::Entities; +use Encode; use IkiWiki 3.00; my $default_prefix = <{page} . "/$digest.png"; my $imglog = $params->{page} . "/$digest.log"; diff --git a/debian/changelog b/debian/changelog index c0f99291f..d1253c079 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +ikiwiki (3.20100303) UNRELEASED; urgency=low + + * Fix utf8 issues in calls to md5_hex. + + -- Joey Hess Tue, 09 Mar 2010 19:46:35 -0500 + ikiwiki (3.20100302) unstable; urgency=low * comments: Display number of comments in comment action link.