From 646d7bf6a3c9d4f153f8129400a24ad147dcd67c Mon Sep 17 00:00:00 2001
From: intrigeri <intrigeri@boum.org>
Date: Sat, 8 Nov 2008 21:32:04 +0100
Subject: po(refreshpot): define the input charset before read()'ing

... to prevent the use of Encode::Guess::guess_encoding() in
Locale::Po4a::Transtractor (just a minor security measure, dependent on po4a
internals, but we have no reason to think Encode::Guess is not safe).

Signed-off-by: intrigeri <intrigeri@boum.org>
---
 IkiWiki/Plugin/po.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index 89bd99470..7bc702eca 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -166,10 +166,10 @@ sub refreshpot ($) { #{{{
 	my $potfile=potfile($masterfile);
 	my %options = ("markdown" => (pagetype($masterfile) eq 'mdwn') ? 1 : 0);
 	my $doc=Locale::Po4a::Chooser::new('text',%options);
-	$doc->read($masterfile);
 	$doc->{TT}{utf_mode} = 1;
 	$doc->{TT}{file_in_charset} = 'utf-8';
 	$doc->{TT}{file_out_charset} = 'utf-8';
+	$doc->read($masterfile);
 	# let's cheat a bit to force porefs option to be passed to Locale::Po4a::Po;
 	# this is undocument use of internal Locale::Po4a::TransTractor's data,
 	# compulsory since this module prevents us from using the porefs option.
-- 
cgit v1.2.3