diff options
author | Russ Allbery <eagle@eyrie.org> | 2016-01-03 21:26:28 -0800 |
---|---|---|
committer | Russ Allbery <eagle@eyrie.org> | 2016-01-03 21:26:28 -0800 |
commit | 61ef051f79682742a30d1501b81cd86ed172fa3c (patch) | |
tree | 88a608cf1e3cbdf1d74a32c432b2d71bb0076239 | |
parent | 423792510f017d36580eb6d96342f6d09433a078 (diff) |
Use _exit when failing to fork external commands
Failed kadmin commands were deleting the wallet database in the
test suite due to an END block in the test programs. Use _exit
to avoid this.
-rw-r--r-- | perl/lib/Wallet/ACL/External.pm | 5 | ||||
-rw-r--r-- | perl/lib/Wallet/Kadmin/MIT.pm | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/perl/lib/Wallet/ACL/External.pm b/perl/lib/Wallet/ACL/External.pm index 76d0891..77c2499 100644 --- a/perl/lib/Wallet/ACL/External.pm +++ b/perl/lib/Wallet/ACL/External.pm @@ -16,6 +16,7 @@ use strict; use warnings; use vars qw(@ISA $VERSION); +use POSIX qw(_exit); use Wallet::ACL::Base; use Wallet::Config; @@ -59,11 +60,11 @@ sub check { } elsif ($pid == 0) { unless (open (STDERR, '>&STDOUT')) { warn "wallet: cannot dup stdout: $!\n"; - exit 1; + _exit(1); } unless (exec ($Wallet::Config::EXTERNAL_COMMAND, @args)) { warn "wallet: cannot run $Wallet::Config::EXTERNAL_COMMAND: $!\n"; - exit 1; + _exit(1); } } local $_; diff --git a/perl/lib/Wallet/Kadmin/MIT.pm b/perl/lib/Wallet/Kadmin/MIT.pm index ac45265..c5dea23 100644 --- a/perl/lib/Wallet/Kadmin/MIT.pm +++ b/perl/lib/Wallet/Kadmin/MIT.pm @@ -18,6 +18,7 @@ use strict; use warnings; use vars qw(@ISA $VERSION); +use POSIX qw(_exit); use Wallet::Config (); use Wallet::Kadmin (); @@ -65,11 +66,11 @@ sub kadmin { $self->{fork_callback} () if $self->{fork_callback}; unless (open (STDERR, '>&STDOUT')) { warn "wallet: cannot dup stdout: $!\n"; - exit 1; + _exit(1); } unless (exec ($Wallet::Config::KEYTAB_KADMIN, @args)) { warn "wallet: cannot run $Wallet::Config::KEYTAB_KADMIN: $!\n"; - exit 1; + _exit(1); } } local $_; |