aboutsummaryrefslogtreecommitdiff
path: root/perl/Wallet/Object/Keytab.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl/Wallet/Object/Keytab.pm')
-rw-r--r--perl/Wallet/Object/Keytab.pm14
1 files changed, 13 insertions, 1 deletions
diff --git a/perl/Wallet/Object/Keytab.pm b/perl/Wallet/Object/Keytab.pm
index 1732070..b1c9d6d 100644
--- a/perl/Wallet/Object/Keytab.pm
+++ b/perl/Wallet/Object/Keytab.pm
@@ -491,6 +491,13 @@ sub create {
return $self;
}
+# Provides wrapper to individual Kadmin class's valid_principal. Here only
+# to help expose for testing.
+sub valid_principal {
+ my ($self, $principal) = @_;
+ return Wallet::Kadmin->valid_principal ($principal);
+}
+
# Override destroy to delete the principal out of Kerberos as well.
sub destroy {
my ($self, $user, $host, $time) = @_;
@@ -547,7 +554,12 @@ sub get {
unlink $file;
my @enctypes = $self->attr ('enctypes');
my $kadmin = $self->{kadmin};
- return if not $kadmin->ktadd ($self->{name}, $file, @enctypes);
+ my $retval = eval { $kadmin->ktadd ($self->{name}, $file, @enctypes) };
+ if ($@) {
+ $self->error ($@);
+ return;
+ }
+ return unless $retval;
local *KEYTAB;
unless (open (KEYTAB, '<', $file)) {
my $princ = $self->{name};