1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-29 13:49:30 +03:00

samba3 already has tdb_validate()

(This used to be commit 9f002eeff9)
This commit is contained in:
Andrew Tridgell
2008-01-14 16:26:52 +11:00
parent a1902700c4
commit 63b1c765de
2 changed files with 0 additions and 43 deletions

View File

@ -743,45 +743,3 @@ failed:
tdb_unlockall(tdb);
return -1;
}
/*
validate the integrity of all tdb hash chains. Useful when debugging
*/
int tdb_validate(struct tdb_context *tdb)
{
int h;
for (h=-1;h<(int)tdb->header.hash_size;h++) {
tdb_off_t rec_ptr;
uint32_t count = 0;
if (tdb_ofs_read(tdb, TDB_HASH_TOP(h), &rec_ptr) == -1) {
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_validate: failed ofs_read at top of hash %d\n", h));
return -1;
}
while (rec_ptr) {
struct list_struct r;
tdb_off_t size;
if (tdb_rec_read(tdb, rec_ptr, &r) == -1) {
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_validate: failed rec_read h=%d rec_ptr=%u count=%u\n",
h, rec_ptr, count));
return -1;
}
if (tdb_ofs_read(tdb, rec_ptr + sizeof(r) + r.rec_len - sizeof(tdb_off_t), &size) == -1) {
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_validate: failed ofs_read h=%d rec_ptr=%u count=%u\n",
h, rec_ptr, count));
return -1;
}
if (size != r.rec_len + sizeof(r)) {
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_validate: failed size check size=%u h=%d rec_ptr=%u count=%u\n",
size, h, rec_ptr, count));
return -1;
}
rec_ptr = r.next;
count++;
}
}
return 0;
}

View File

@ -157,7 +157,6 @@ int tdb_printfreelist(struct tdb_context *tdb);
int tdb_validate_freelist(struct tdb_context *tdb, int *pnum_entries);
int tdb_wipe_all(struct tdb_context *tdb);
int tdb_freelist_size(struct tdb_context *tdb);
int tdb_validate(struct tdb_context *tdb);
extern TDB_DATA tdb_null;