bbbdb1633941a8f717c77332ce3b6a31ad03c6e4
[ikiwiki.git] / doc / bugs / prune_causing_taint_mode_failures.mdwn
1 Using ikiwiki version 2.5gpa1 (the backport to Debian 3.1), I suddenly started getting the following error when rebuilding the wiki:
2
3 <pre>
4 successfully generated /home/ikiwiki/cgi-bin/ikiwiki.cgi
5 Insecure dependency in rmdir while running with -T switch at /usr/share/perl5/IkiWiki/Render.pm line 242.
6 BEGIN failed--compilation aborted at (eval 5) line 130.
7 </pre>
8
9 I've no idea what's happening (hey, I'm a C programmer), but I've hacked prune() to workaround this as follows:
10
11 <pre>
12 use Scalar::Util qw(t>inted);
13
14 sub prune ($) { #{{{
15         my $file=shift;
16
17         unlink($file);
18         my $dir=dirname($file);
19         if (!tainted($file) && $dir =~ /^(.*)$/) {
20                 $dir = $1;
21         }
22         while (rmdir($dir)) {
23                 $dir=dirname($dir);
24                 if (!tainted($file) && $dir =~ /^(.*)$/) {
25                         $dir = $1;
26                 }
27         }
28 } #}}}
29 </pre>