* Allow -cgi -wrapper to be passed on the command line to generate a
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 28 Aug 2007 21:14:03 +0000 (21:14 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 28 Aug 2007 21:14:03 +0000 (21:14 +0000)
  wrapper.
* Fix some taint issues with generating wrappers using the command line.

debian/changelog
doc/w3mmode/ikiwiki.setup
ikiwiki.in

index 7b8e956e0f71b6bfa1767da2084bc64e19132d01..63b03ef3b988051c5c8a60b9a36c982044430f10 100644 (file)
@@ -6,8 +6,11 @@ ikiwiki (2.7) UNRELEASED; urgency=low
     function.
   * Split out smiley underlay files into a separate underlay, so if the plugin
     isn't used, the wiki isn't bloated with all those files.
+  * Allow -cgi -wrapper to be passed on the command line to generate a
+    wrapper.
+  * Fix some taint issues with generating wrappers using the command line.
 
- -- Joey Hess <joeyh@debian.org>  Mon, 27 Aug 2007 20:48:51 -0400
+ -- Joey Hess <joeyh@debian.org>  Tue, 28 Aug 2007 17:11:30 -0400
 
 ikiwiki (2.6.1) unstable; urgency=low
 
index d71221a8ff6deffea28cb453602cd50a907969ba..8cddec40b5273844c69fa3448921b9ccf8b53df0 100644 (file)
@@ -21,6 +21,8 @@ use IkiWiki::Setup::Standard {
                {
                        # The cgi wrapper.
                        cgi => 1,
+                       # This path can't be changed, since
+                       # ikiwiki-w3m.cgi only looks in this one location.
                        wrapper => "$ENV{HOME}/.ikiwiki/wrappers/ikiwiki.cgi",
                        wrappermode => "0755",
                },
index 6242865ee4206cb7b4a760ed7dc705a5b4c5a07a..2aeaf94ecedc4ffd210d9c774dab983a58050f2d 100755 (executable)
@@ -30,7 +30,6 @@ sub getconfig () { #{{{
                        "wrappers!" => \$config{wrappers},
                        "usedirs!" => \$config{usedirs},
                        "getctime" => \$config{getctime},
-                       "wrappermode=i" => \$config{wrappermode},
                        "numbacklinks=i" => \$config{numbacklinks},
                        "rcs=s" => \$config{rcs},
                        "no-rcs" => sub { $config{rcs}="" },
@@ -64,7 +63,10 @@ sub getconfig () { #{{{
                                $config{underlaydir}=possibly_foolish_untaint($_[1])
                        },
                        "wrapper:s" => sub {
-                               $config{wrapper}=$_[1] ? $_[1] : "ikiwiki-wrap"
+                               $config{wrapper}=$_[1] ? possibly_foolish_untaint($_[1]) : "ikiwiki-wrap"
+                       },
+                       "wrappermode=i" => sub {
+                               $config{wrappermode}=possibly_foolish_untaint($_[1])
                        },
                        "plugin=s@" => sub {
                                push @{$config{plugin}}, $_[1];
@@ -111,12 +113,7 @@ sub getconfig () { #{{{
 sub main () { #{{{
        getconfig();
        
-       if ($config{cgi}) {
-               loadindex();
-               require IkiWiki::CGI;
-               cgi();
-       }
-       elsif ($config{setup}) {
+       if ($config{setup}) {
                require IkiWiki::Setup;
                setup();
        }
@@ -125,6 +122,11 @@ sub main () { #{{{
                require IkiWiki::Wrapper;
                gen_wrapper();
        }
+       elsif ($config{cgi}) {
+               loadindex();
+               require IkiWiki::CGI;
+               cgi();
+       }
        elsif ($config{render}) {
                require IkiWiki::Render;
                commandline_render();