aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-03-09 19:55:19 -0500
committerJoey Hess <joey@kitenet.net>2010-03-09 19:55:19 -0500
commit6d27bbd026ebed85f8501b6b4daefaba73061574 (patch)
tree6a0bee7e5fb6de5d5fd9b8dd4e1b3aeb2467673c /IkiWiki/Plugin
parentfa6d082955dbc75de62839e285c0d441cd83acb1 (diff)
downloadikiwiki-6d27bbd026ebed85f8501b6b4daefaba73061574.tar
ikiwiki-6d27bbd026ebed85f8501b6b4daefaba73061574.tar.gz
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.
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r--IkiWiki/Plugin/comments.pm4
-rw-r--r--IkiWiki/Plugin/teximg.pm3
2 files changed, 4 insertions, 3 deletions
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 = <<EOPREFIX;
@@ -103,7 +104,7 @@ sub create ($$$) {
$height = 12;
}
- my $digest = md5_hex($code, $height);
+ my $digest = md5_hex(Encode::encode_utf8($code), $height);
my $imglink= $params->{page} . "/$digest.png";
my $imglog = $params->{page} . "/$digest.log";