po: when possible, disable use of Text::WrapI18N in po4a; else warn about too old...
authorintrigeri <intrigeri@boum.org>
Fri, 16 Jan 2009 13:29:46 +0000 (14:29 +0100)
committerintrigeri <intrigeri@boum.org>
Fri, 16 Jan 2009 14:07:05 +0000 (15:07 +0100)
Signed-off-by: intrigeri <intrigeri@boum.org>
IkiWiki/Plugin/po.pm
doc/plugins/po.mdwn

index f826f9503805a55da1548a1f1d124315ee0ddb06..0a970284cdc41fbc831f4cd809d34f41dbc63b43 100644 (file)
@@ -10,6 +10,16 @@ use warnings;
 use strict;
 use IkiWiki 3.00;
 use Encode;
+BEGIN {
+       eval 'use Locale::Po4a::Common qw(nowrapi18n)';
+       if ($@) {
+               warning(sprintf(gettext('%s is too old, can not disable %s; '.
+                                       'a denial of service can thus be '.
+                                       'triggered by malicious content'),
+                               'Locale::Po4a', 'Text::WrapI18N'));
+               eval 'use Locale::Po4a::Common';
+       }
+}
 use Locale::Po4a::Chooser;
 use Locale::Po4a::Po;
 use File::Basename;
index 92fba349fda19b8d29ac6fdab85a7538581e4754..5c98f348569eb48dffb6a722571189a6219c1007 100644 (file)
@@ -333,11 +333,8 @@ means the `Text` module only.
 [Debian bug #470250](http://bugs.debian.org/470250)), but it is
 optional and we do not need the features it provides.
 
-> I proposed a patch based on Joey's to po4a-devel, allowing to fully
-> disable this module's use. When it is merged upstream, we'll need to add
-> `use Locale::Po4a::Common qw(nowrapi18n)` to `po.pm`, before loading
-> any other `Locale::Po4a` module. A versioned dependency may be needed.
-> --[[intrigeri]]
+> If a recent enough po4a is installed, this module's use is fully disabled.
+> This feature has been merged in po4a CVS on 2009-01-15. --[[intrigeri]]
 
 ##### Term::ReadKey