1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-10 01:18:15 +03:00

lib/dbwrap: reset deleted record to tdb_null

This allows the calling the following sequence of dbwrap functions:

  dbwrap_delete_record(rec);
  data = dbwrap_record_get_value(rec);

without triggering the assert rec->value_valid inside dbwrap_record_get_value().

Note that dbwrap_record_storev() continues to invalidate the record, so this
change somewhat blurs our semantics.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14882

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Nov  4 19:49:47 UTC 2021 on sn-devel-184
This commit is contained in:
Ralph Boehme 2021-10-29 22:03:42 +02:00 committed by Jeremy Allison
parent 1fa006f1f7
commit 8082e2eb7e
2 changed files with 3 additions and 7 deletions

View File

@ -110,16 +110,13 @@ NTSTATUS dbwrap_record_delete(struct db_record *rec)
{
NTSTATUS status;
/*
* Invalidate before rec->delete_rec() is called, give
* rec->delete_rec() the chance to re-validate rec->value.
*/
rec->value_valid = false;
status = rec->delete_rec(rec);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
rec->value = tdb_null;
return NT_STATUS_OK;
}

View File

@ -1 +0,0 @@
^samba3.blackbox.smbXsrv_client_dead_rec.check_panic\(fileserver:local\)