From 2f9387bdf0e047bbd193532c4fed209acabd0e7a Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Thu, 4 Oct 2007 22:06:46 +0000 Subject: Fix error handling if we cannot dup stdout. --- perl/Wallet/Object/Keytab.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'perl') 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 () { - if (/^wallet: cannot run /) { + if (/^wallet: cannot /) { s/^wallet: //; die $_; } -- cgit v1.2.3