X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/bb0193aff3e044e93006ee7ad0aaef1a82adaeee..958468b0883783cebd57086e80ec58f578c82074:/IkiWiki/Wrapper.pm diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index 4966c453a..2e4925a1f 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -19,6 +19,9 @@ sub gen_wrapper () { #{{{ error("cannot create a wrapper that uses a setup file"); } my $wrapper=possibly_foolish_untaint($config{wrapper}); + if (! defined $wrapper || ! length $wrapper) { + error("wrapper filename not specified"); + } delete $config{wrapper}; my @envsave; @@ -38,7 +41,7 @@ EOF $configstring=~s/\\/\\\\/g; $configstring=~s/"/\\"/g; - open(OUT, ">ikiwiki-wrap.c") || error("failed to write ikiwiki-wrap.c: $!");; + open(OUT, ">$wrapper.c") || error("failed to write $wrapper.c: $!");; print OUT <<"EOF"; /* A wrapper for ikiwiki, can be safely made suid. */ #define _GNU_SOURCE @@ -66,10 +69,10 @@ $envsave } EOF close OUT; - if (system("gcc", "ikiwiki-wrap.c", "-o", $wrapper) != 0) { - error("failed to compile ikiwiki-wrap.c"); + if (system("gcc", "$wrapper.c", "-o", $wrapper) != 0) { + error("failed to compile $wrapper.c"); } - unlink("ikiwiki-wrap.c"); + unlink("$wrapper.c"); if (defined $config{wrappermode} && ! chmod(oct($config{wrappermode}), $wrapper)) { error("chmod $wrapper: $!");