From 802be941044a1ba3caa8dc3cea9e8932472c3a02 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Thu, 6 Nov 2008 14:17:33 +0100 Subject: [PATCH] po: use prep_writefile before creating any files in refreshpot and refreshpo Signed-off-by: intrigeri --- IkiWiki/Plugin/po.pm | 2 ++ doc/plugins/po.mdwn | 6 ------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 9dc4061ef..cfba83995 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -164,6 +164,7 @@ sub refreshpot ($) { #{{{ $doc->{TT}{po_out}->set_charset('utf-8'); # do the actual work $doc->parse; + IkiWiki::prep_writefile(basename($potfile),dirname($potfile)); $doc->writepo($potfile); } #}}} @@ -175,6 +176,7 @@ sub refreshpofiles ($@) { #{{{ error("[po/refreshpofiles] POT file ($potfile) does not exist") unless (-e $potfile); foreach my $pofile (@pofiles) { + IkiWiki::prep_writefile(basename($pofile),dirname($pofile)); if (-e $pofile) { system("msgmerge", "-U", "--backup=none", $pofile, $potfile) == 0 or error("[po/refreshpofiles:$pofile] failed to update"); diff --git a/doc/plugins/po.mdwn b/doc/plugins/po.mdwn index dddb46fc8..c9d5b664e 100644 --- a/doc/plugins/po.mdwn +++ b/doc/plugins/po.mdwn @@ -219,12 +219,6 @@ Security checks thoroughly to prevent any security issue (command injection, etc.). > Always pass `system()` a list of parameters to avoid the shell. > I've checked in a change fixing that. --[[Joey]] -- `refreshpofiles` and `refreshpot` create new files; this may need - some checks, e.g. using `IkiWiki::prep_writefile()` - > Yes, it would be ideal to call `prep_writefile` on each file - > that they write, beforehand. This way you'd avoid symlink attacks etc to the - > generated po/pot files. I haven't done it, but it seems pretty trivial. - > --[[Joey]] - Can any sort of directives be put in po files that will cause mischief (ie, include other files, run commands, crash gettext, whatever). -- 2.45.0