From b1fecf16daa5e6652b603e918283f12d8584e869 Mon Sep 17 00:00:00 2001
From: joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Date: Tue, 21 Aug 2007 06:19:13 +0000
Subject: [PATCH] web commit by ali: Reporting bug with prune and taint mode

---
 .../prune_causing_taint_mode_failures.mdwn    | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 doc/bugs/prune_causing_taint_mode_failures.mdwn

diff --git a/doc/bugs/prune_causing_taint_mode_failures.mdwn b/doc/bugs/prune_causing_taint_mode_failures.mdwn
new file mode 100644
index 000000000..3187ed54f
--- /dev/null
+++ b/doc/bugs/prune_causing_taint_mode_failures.mdwn
@@ -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;
+                }
+        }
+} #}}}
-- 
2.39.5