- if (system("gcc", "ikiwiki-wrap.c", "-o", $wrapper) != 0) {
- error("failed to compile ikiwiki-wrap.c");
+
+ my $cc=exists $ENV{CC} ? possibly_foolish_untaint($ENV{CC}) : 'cc';
+ if (system($cc, "$wrapper.c", "-o", "$wrapper.new") != 0) {
+ #translators: The parameter is a C filename.
+ error(sprintf(gettext("failed to compile %s"), "$wrapper.c"));
+ }
+ unlink("$wrapper.c");
+ if (defined $config{wrappergroup}) {
+ my $gid=(getgrnam($config{wrappergroup}))[2];
+ if (! defined $gid) {
+ error(sprintf("bad wrappergroup"));
+ }
+ if (! chown(-1, $gid, "$wrapper.new")) {
+ error("chown $wrapper.new: $!");
+ }