summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/lib/hdb/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/lib/hdb/common.c')
-rw-r--r--crypto/heimdal/lib/hdb/common.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/crypto/heimdal/lib/hdb/common.c b/crypto/heimdal/lib/hdb/common.c
index 9375525..6f0e730 100644
--- a/crypto/heimdal/lib/hdb/common.c
+++ b/crypto/heimdal/lib/hdb/common.c
@@ -33,7 +33,7 @@
#include "hdb_locl.h"
-RCSID("$Id: common.c,v 1.11 2002/09/04 16:32:30 joda Exp $");
+RCSID("$Id: common.c,v 1.12 2003/01/14 06:54:32 lha Exp $");
int
hdb_principal2key(krb5_context context, krb5_principal p, krb5_data *key)
@@ -78,20 +78,22 @@ krb5_error_code
_hdb_fetch(krb5_context context, HDB *db, unsigned flags, hdb_entry *entry)
{
krb5_data key, value;
- int code = 0;
+ int code;
hdb_principal2key(context, entry->principal, &key);
code = db->_get(context, db, key, &value);
krb5_data_free(&key);
if(code)
return code;
- hdb_value2entry(context, &value, entry);
+ code = hdb_value2entry(context, &value, entry);
+ krb5_data_free(&value);
+ if (code)
+ return code;
if (db->master_key_set && (flags & HDB_F_DECRYPT)) {
code = hdb_unseal_keys (context, db, entry);
if (code)
hdb_free_entry(context, entry);
}
- krb5_data_free(&value);
return code;
}
OpenPOWER on IntegriCloud