diff options
Diffstat (limited to 'lib/tdb/common/tdb.c')
-rw-r--r-- | lib/tdb/common/tdb.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/tdb/common/tdb.c b/lib/tdb/common/tdb.c index 7acc111cd8..7ee0bb7300 100644 --- a/lib/tdb/common/tdb.c +++ b/lib/tdb/common/tdb.c @@ -98,12 +98,14 @@ static tdb_off_t tdb_find(struct tdb_context *tdb, TDB_DATA key, uint32_t hash, } /* detect tight infinite loop */ if (rec_ptr == r->next) { + tdb->ecode = TDB_ERR_CORRUPT; TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_find: loop detected.\n")); - return TDB_ERRCODE(TDB_ERR_CORRUPT, 0); + return 0; } rec_ptr = r->next; } - return TDB_ERRCODE(TDB_ERR_NOEXIST, 0); + tdb->ecode = TDB_ERR_NOEXIST; + return 0; } /* As tdb_find, but if you succeed, keep the lock */ @@ -216,7 +218,8 @@ int tdb_parse_record(struct tdb_context *tdb, TDB_DATA key, if (!(rec_ptr = tdb_find_lock_hash(tdb,key,hash,F_RDLCK,&rec))) { tdb_trace_1rec_ret(tdb, "tdb_parse_record", key, -1); - return TDB_ERRCODE(TDB_ERR_NOEXIST, 0); + tdb->ecode = TDB_ERR_NOEXIST; + return 0; } tdb_trace_1rec_ret(tdb, "tdb_parse_record", key, 0); |