diff options
author | Eric Wong <e@80x24.org> | 2016-02-29 01:32:24 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-02-29 01:32:24 +0000 |
commit | 83770743503dfab6ac337bf053fb22a961c2cb54 (patch) | |
tree | fb4f944f549c37a15e7ad1046f6e823e9663fcbb /lib/PublicInbox/SpawnPP.pm | |
parent | c450d851f8cb466e275097bcc7bf13bfc9365b81 (diff) | |
download | public-inbox-83770743503dfab6ac337bf053fb22a961c2cb54.tar.gz |
We cannot modify %ENV directly under mod_perl (even after forking!), so use env(1) instead to pass the environment.
Diffstat (limited to 'lib/PublicInbox/SpawnPP.pm')
-rw-r--r-- | lib/PublicInbox/SpawnPP.pm | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/lib/PublicInbox/SpawnPP.pm b/lib/PublicInbox/SpawnPP.pm index 288625d0..dc2ef364 100644 --- a/lib/PublicInbox/SpawnPP.pm +++ b/lib/PublicInbox/SpawnPP.pm @@ -19,13 +19,8 @@ sub public_inbox_fork_exec ($$$$$$) { if ($err != 2) { dup2($err, 2) or die "dup2 failed for stderr: $!"; } - %ENV = (); - foreach my $e (@$env) { - my ($k, $v) = split('=', $e, 2); - $ENV{$k} = $v; - } - exec @$cmd; - die "exec $cmd->[0] failed: $!\n"; + exec qw(env -i), @$env, @$cmd; + die "exec env -i ... $cmd->[0] failed: $!\n"; } $pid; } |