From e0af03a54282129355d127f2787ed5516062e695 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Sat, 1 Dec 2007 02:26:31 +0000 Subject: Make sure we always have a valid object and access to our database handle when calling kadmin so that we can do our database handle mangling. --- perl/Wallet/Object/Keytab.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'perl') diff --git a/perl/Wallet/Object/Keytab.pm b/perl/Wallet/Object/Keytab.pm index 1189150..7725241 100644 --- a/perl/Wallet/Object/Keytab.pm +++ b/perl/Wallet/Object/Keytab.pm @@ -65,7 +65,7 @@ sub kadmin { # Don't use die here; it will get trapped as an exception. Also be # careful about our database handles. (We still lose if there's some # other database handle open we don't know about.) - $self->{dbh}->{InactiveDestroy} = 0 if ref $self; + $self->{dbh}->{InactiveDestroy} = 0; unless (open (STDERR, '>&STDOUT')) { warn "wallet: cannot dup stdout: $!\n"; exit 1; @@ -617,7 +617,9 @@ sub attr_show { # caller. sub create { my ($class, $type, $name, $dbh, $creator, $host, $time) = @_; - $class->kadmin_addprinc ($name); + my $self = { dbh => $dbh }; + bless $self, $class; + $self->kadmin_addprinc ($name); return $class->SUPER::create ($type, $name, $dbh, $creator, $host, $time); } -- cgit v1.2.3