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
{
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;
}
+++ /dev/null
-^samba3.blackbox.smbXsrv_client_dead_rec.check_panic\(fileserver:local\)