diff options
author | Russ Allbery <rra@stanford.edu> | 2007-10-04 22:06:46 +0000 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2007-10-04 22:06:46 +0000 |
commit | 2f9387bdf0e047bbd193532c4fed209acabd0e7a (patch) | |
tree | b037b3bdb6709257181dfb96f99a34d94c225d41 /perl/Wallet/Object | |
parent | 1f1038a03819cd9933daa3ab5e8e1f3a8a29394a (diff) |
Fix error handling if we cannot dup stdout.
Diffstat (limited to 'perl/Wallet/Object')
-rw-r--r-- | perl/Wallet/Object/Keytab.pm | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/perl/Wallet/Object/Keytab.pm b/perl/Wallet/Object/Keytab.pm index c78adc2..4ae7818 100644 --- a/perl/Wallet/Object/Keytab.pm +++ b/perl/Wallet/Object/Keytab.pm @@ -62,9 +62,11 @@ sub kadmin { if (not defined $pid) { die "cannot fork: $!\n"; } elsif ($pid == 0) { - open (STDERR, '>&STDOUT') or die "cannot dup stdout: $!\n"; - # Don't use die here; it will get trapped as an exception. + unless (open (STDERR, '>&STDOUT')) { + warn "wallet: cannot dup stdout: $!\n"; + exit 1; + } unless (exec ($Wallet::Config::KEYTAB_KADMIN, @args)) { warn "wallet: cannot run $Wallet::Config::KEYTAB_KADMIN: $!\n"; exit 1; @@ -73,7 +75,7 @@ sub kadmin { local $_; my @output; while (<KADMIN>) { - if (/^wallet: cannot run /) { + if (/^wallet: cannot /) { s/^wallet: //; die $_; } |