Return NOENTRY if fetch fails. Don't free datums. Don't add .db to

filename.


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1405 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1997-03-14 02:37:19 +00:00
parent fd9a7d837f
commit 3d7e5b5a14

View File

@@ -28,13 +28,13 @@ NDBM_fetch(krb5_context context, HDB *db, hdb_entry *entry)
value = dbm_fetch(d, key); value = dbm_fetch(d, key);
krb5_data_free(&data); krb5_data_free(&data);
if(value.dptr == NULL) if(value.dptr == NULL)
return errno; return KRB5_HDB_NOENTRY;
data.data = value.dptr; data.data = value.dptr;
data.length = value.dsize; data.length = value.dsize;
hdb_value2entry(context, &data, entry); hdb_value2entry(context, &data, entry);
krb5_data_free(&data); /* krb5_data_free(&data); */
return 0; return 0;
} }
@@ -96,11 +96,11 @@ NDBM_seq(krb5_context context, HDB *db, hdb_entry *entry, int first)
data.length = key.dsize; data.length = key.dsize;
hdb_key2principal(context, &data, &entry->principal); hdb_key2principal(context, &data, &entry->principal);
value = dbm_fetch(d, key); value = dbm_fetch(d, key);
krb5_data_free(&data); /* krb5_data_free(&data); */
data.data = value.dptr; data.data = value.dptr;
data.length = value.dsize; data.length = value.dsize;
hdb_value2entry(context, &data, entry); hdb_value2entry(context, &data, entry);
krb5_data_free(&data); /* krb5_data_free(&data); */
return 0; return 0;
} }
@@ -123,10 +123,7 @@ hdb_ndbm_open(krb5_context context, HDB **db,
const char *filename, int flags, mode_t mode) const char *filename, int flags, mode_t mode)
{ {
DBM *d; DBM *d;
char *fn = malloc(strlen(filename) + 4); d = dbm_open((char*)filename, flags, mode);
sprintf(fn, "%s.db", filename);
d = dbm_open(fn, flags, mode);
free(fn);
if(d == NULL) if(d == NULL)
return errno; return errno;
*db = malloc(sizeof(**db)); *db = malloc(sizeof(**db));