]> sipb.mit.edu Git - ikiwiki.git/commitdiff
web commit by ali: Reporting bug with prune and taint mode
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 21 Aug 2007 06:19:13 +0000 (06:19 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 21 Aug 2007 06:19:13 +0000 (06:19 +0000)
doc/bugs/prune_causing_taint_mode_failures.mdwn [new file with mode: 0644]

diff --git a/doc/bugs/prune_causing_taint_mode_failures.mdwn b/doc/bugs/prune_causing_taint_mode_failures.mdwn
new file mode 100644 (file)
index 0000000..3187ed5
--- /dev/null
@@ -0,0 +1,25 @@
+Using ikiwiki version 2.5gpa1 (the backport to Debian 3.1), I suddenly started getting the following error when rebuilding the wiki:
+
+successfully generated /home/ikiwiki/cgi-bin/ikiwiki.cgi
+Insecure dependency in rmdir while running with -T switch at /usr/share/perl5/IkiWiki/Render.pm line 242.
+BEGIN failed--compilation aborted at (eval 5) line 130.
+
+I've no idea what's happening (hey, I'm a C programmer), but I've hacked prune() to workaround this as follows:
+
+use Scalar::Util qw(tainted);
+
+sub prune ($) { #{{{
+        my $file=shift;
+
+        unlink($file);
+        my $dir=dirname($file);
+        if (!tainted($file) && $dir =~ /^(.*)$/) {
+                $dir = $1;
+        }
+        while (rmdir($dir)) {
+                $dir=dirname($dir);
+                if (!tainted($file) && $dir =~ /^(.*)$/) {
+                        $dir = $1;
+                }
+        }
+} #}}}