diff options
author | Andrew Bartlett <abartlet@samba.org> | 2005-08-27 11:49:06 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:34:39 -0500 |
commit | 08730652fbf1c9f6d53378b1b094a2c5ddf2cf62 (patch) | |
tree | 077a628e42ccb9388e6ebbbe6ab068980b592554 /source4/heimdal/lib/hdb/hdb.c | |
parent | 02caf604be250e71b46619949cbbfa11543a3907 (diff) | |
download | samba-08730652fbf1c9f6d53378b1b094a2c5ddf2cf62.tar.gz samba-08730652fbf1c9f6d53378b1b094a2c5ddf2cf62.tar.bz2 samba-08730652fbf1c9f6d53378b1b094a2c5ddf2cf62.zip |
r9680: Update Heimdal to current lorikeet-heimdal (which was itself updated
to Heimdal CVS as of 2005-08-27).
Andrew Bartlett
(This used to be commit 913924a4997f5e14c503f87510cbd8e4bfd965a9)
Diffstat (limited to 'source4/heimdal/lib/hdb/hdb.c')
-rw-r--r-- | source4/heimdal/lib/hdb/hdb.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source4/heimdal/lib/hdb/hdb.c b/source4/heimdal/lib/hdb/hdb.c index 53c952927f..8233eb6ac7 100644 --- a/source4/heimdal/lib/hdb/hdb.c +++ b/source4/heimdal/lib/hdb/hdb.c @@ -33,7 +33,7 @@ #include "hdb_locl.h" -RCSID("$Id: hdb.c,v 1.54 2005/05/29 18:12:28 lha Exp $"); +RCSID("$Id: hdb.c,v 1.55 2005/08/19 13:07:03 lha Exp $"); #ifdef HAVE_DLFCN_H #include <dlfcn.h> @@ -174,9 +174,14 @@ hdb_check_db_format(krb5_context context, HDB *db) unsigned ver; int foo; + ret = db->hdb_lock(context, db, HDB_RLOCK); + if (ret) + return ret; + tag.data = HDB_DB_FORMAT_ENTRY; tag.length = strlen(tag.data); ret = (*db->hdb__get)(context, db, tag, &version); + db->hdb_unlock(context, db); if(ret) return ret; foo = sscanf(version.data, "%u", &ver); @@ -200,12 +205,19 @@ hdb_init_db(krb5_context context, HDB *db) if(ret != HDB_ERR_NOENTRY) return ret; + ret = db->hdb_lock(context, db, HDB_WLOCK); + if (ret) + return ret; + tag.data = HDB_DB_FORMAT_ENTRY; tag.length = strlen(tag.data); snprintf(ver, sizeof(ver), "%u", HDB_DB_FORMAT); version.data = ver; version.length = strlen(version.data) + 1; /* zero terminated */ ret = (*db->hdb__put)(context, db, 0, tag, version); + ret = db->hdb_unlock(context, db); + if (ret) + return ret; return ret; } |