summaryrefslogtreecommitdiff
path: root/lib/dbwrap
AgeCommit message (Collapse)AuthorFilesLines
2026-02-15lib: Avoid DEBUGADDs in debug_lock_order()Volker Lendecke1-12/+19
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Anoop C S <anoopcs@samba.org>
2024-03-28lib: Fix dbwrap_tdb.h prerequisitesVolker Lendecke1-1/+1
It uses enum dbwrap_lock_order, so include dbwrap.h Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
2023-08-14dbwrap: Simplify dbwrap_change_int32_atomic_action()Volker Lendecke1-27/+37
Use dbwrap_do_locked() Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2023-08-14dbwrap: Simplify dbwrap_change_uint32_atomic_action()Volker Lendecke1-29/+38
Use dbwrap_do_locked() Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2023-08-08lib:dbwrap: Remove unneeded space in debug messageJoseph Sutton1-1/+1
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2023-06-13lib:dbwrap: Add dbwrap_merge_dbs()Pavel Filipenský2-0/+42
Signed-off-by: Pavel Filipenský <pfilipensky@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
2023-06-13lib:dbwrap: Fix trailing whitespace in lib/dbwrap/dbwrap.hPavel Filipenský1-1/+1
Signed-off-by: Pavel Filipenský <pfilipensky@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
2023-04-03lib:dbwrap: Fix code spellingAndreas Schneider2-2/+2
Best reviewed with: `git show --word-diff`. Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2022-09-20lib/dbwrap: allow dbwrap_merge_dbufs() to update an existing bufferStefan Metzmacher3-12/+21
This will be useful in future... BUG: https://bugzilla.samba.org/show_bug.cgi?id=15125 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2021-11-04lib/dbwrap: reset deleted record to tdb_nullRalph Boehme1-6/+3
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
2021-06-04dbwrap: Remove "db_context->try_fetch_locked()" fn pointerVolker Lendecke2-18/+0
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2021-06-04dbwrap: Remove unused dbwrap_try_fetch_locked()Volker Lendecke2-13/+0
Small simplification, this has not been used since 2014 when the notifyd went in. Can easily be added if needed again. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2020-06-10dbwrap_rbt: support TDB_INSERT and TDB_MODIFY store flagsDavid Disseldorp1-0/+8
These flags provide insert-new and overwrite-existing record semantics respectively. Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2020-05-15dbwrap: Make dbwrap_lock_order_[un]lock() publicVolker Lendecke2-4/+9
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2020-05-15dbwrap: Simplify dbwrap_lock_order_[un]lock()Volker Lendecke1-34/+49
Directly pass the database name and lock order to the core functions, avoid passing struct db_context. In the next steps these functions will become public: locking.tdb will be based on g_lock.c to avoid holding a tdb-level locking.tdb mutex while doing complex file system operations like unlink() which can take ages on FAT for example. This means that g_lock.c will participate in the dbwrap lock order protection and needs access to dbwrap_lock_order_[un]lock() without providing a direct db_context. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-22dbwrap: Don't set rec->value in dbwrap_do_locked()Volker Lendecke2-4/+10
We pass that via the callback now Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-22dbwrap: Protect against invalid db_record->valueVolker Lendecke4-0/+20
After dbwrap_record_storev()/delete(), dbwrap_record_get_value() information is stale. Assert on the attempt to re-fetch data after it became stale. This can't protect against someone copying the result from dbwrap_record_get_value() somewhere else, but it's better than nothing. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-22dbwrap: Pass "value" to dbwrap_do_locked() callbackVolker Lendecke4-4/+14
I want to reduce dbwrap_record_get_value(). It makes the caller believe it can make a copy of the TDB_DATA returned and that the value remains constant. It's not, as you can always do a dbwrap_record_store(). This patch removes one requirement for getting the value out of a db_record via dbwrap_record_get_value(). You can still make a copy, but from an API perspective to me it's more obvious that "value" as a parameter to the callback has a limited lifetime. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-22dbwrap_tdb: Return correct error from db_tdb_storev()Volker Lendecke1-2/+8
Don't lose information to NT_STATUS_UNSUCCESSFUL Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-22dbwrap_tdb: Avoid includes.hVolker Lendecke1-1/+3
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-06dbwrap_tdb: Avoid a use of talloc_stackframe()Volker Lendecke1-10/+10
For really large keys (that probably don't exist), use dump_data() Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-09-17lib: Allow a 4th lock orderVolker Lendecke2-2/+3
We will have another tdb soon Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-09-10dbwrap: Initialize state in dbwrap_delete()Volker Lendecke1-1/+1
Probably not required, but looks safer and gives static checkers less reason to complain about potentially uninitialized variable reads Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-09-10lib: Remove an obsolete commentVolker Lendecke1-4/+0
At least as of 2ac9d0afa66 ctdb does not care about db prios anymore Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-08-19lib: Micro-optimization for db_tdb_do_locked()Volker Lendecke1-2/+2
We don't need the tdb lock for the talloc_free(buf) anymore Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Böhme <slow@samba.org>
2019-06-26lib/dwrap: Fix 'Null pointer passed as an argument to a 'nonnull' parameter 'Noel Power1-1/+1
Fixes: lib/dbwrap/dbwrap.c:645:4: warning: Null pointer passed as an argument to a 'nonnull' parameter <--[clang] memcpy(p, dbufs[i].dptr, thislen); Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2019-06-26lib/dbwrap: clang: Fix 'all argument is an uninitialized value'Noel Power1-2/+3
Fixes: lib/dbwrap/dbwrap.c:533:4: warning: 2nd function call argument is an uninitialized value <--[clang] dbwrap_lock_order_unlock(db, lockptr); ^ Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2019-05-27Fix ubsan null pointer passed as argument 2Gary Lockyer1-1/+3
Fix ubsan warning null pointer passed as argument 2 when the source pointer is NULL. The calls to memcpy are now guarded by an if (len > 0) Signed-off-by: Gary Lockyer <gary@catalyst.net.nz> Reviewed-by: Andreas Schneider <asn@samba.org> Autobuild-User(master): Gary Lockyer <gary@samba.org> Autobuild-Date(master): Mon May 27 01:29:48 UTC 2019 on sn-devel-184
2019-05-08dbwrap: Adapt tdb_data_buf's overflow handling to modern conventionsVolker Lendecke1-4/+2
This is the way we do it right now, avoid confusion why "tmp" might be needed Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-05-08dbwrap: Fix tdb_data_buf()Volker Lendecke1-1/+1
IIRC there are platforms that don't like memcpy() with len=0. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2018-09-14dbwrap_tdb: Avoid double-call to talloc_get_type_abortVolker Lendecke1-5/+6
We've already retrieved "ctx" in the callers of db_tdb_fetch_locked_internal(). Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
2018-09-12dbwrap_tdb: use struct initializerRalph Boehme1-2/+3
This ensures all struct members are implicitly initialized. Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2018-09-12dbwrap_tdb: move a function call out of an if conditionRalph Boehme1-3/+6
At least for me this improves readability somewhat. No change in behaviour. Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2018-09-07dbwrap: Remove a pointless "return;"Volker Lendecke1-1/+0
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
2018-08-17dbwrap: Fix a typoVolker Lendecke1-1/+1
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Rowland Penny <rpenny@samba.org>
2018-05-16Convert affected by previous commit lines from DEBUG(10,..) to DBG_DEBUG().Timur I. Bakeyev1-2/+2
Signed-off-by: Timur I. Bakeyev <timur@iXsystems.com> Reviewed-by: Ralph Boehme <slow@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net> Autobuild-User(master): Ralph Böhme <slow@samba.org> Autobuild-Date(master): Wed May 16 21:29:24 CEST 2018 on sn-devel-144
2018-05-16Remove extra 0x prefix for the "%p" format specifiers, avoiding 0x0x0 ↵Timur I. Bakeyev1-1/+1
strings in the output. Signed-off-by: Timur I. Bakeyev <timur@iXsystems.com> Reviewed-by: Ralph Boehme <slow@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net>
2018-04-24dbwrap: Remove dependency on samba-hostconfigVolker Lendecke1-1/+1
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2018-04-24dbwrap: Remove calls to loadparmVolker Lendecke2-12/+9
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-08-16dbwrap: Simplify dbwrap_unmarshall_fnVolker Lendecke1-13/+3
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-08-16dbwrap: Simplify dbwrap_trans_deleteVolker Lendecke1-10/+1
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-08-16dbwrap: Simplify dbwrap_trans_storeVolker Lendecke1-9/+2
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-08-16dbwrap: Simplify dbwrap_store_uint32_bystringVolker Lendecke1-14/+5
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-08-16dbwrap: Simplify dbwrap_store_int32_bystringVolker Lendecke1-14/+5
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-08-16dbwrap: Convert dbwrap_delete to dbwrap_do_lockedVolker Lendecke1-9/+16
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-08-16dbwrap: Convert dbwrap_store to dbwrap_do_lockedVolker Lendecke1-9/+17
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2017-07-25dbwrap_tdb: Implement do_lockedVolker Lendecke1-0/+47
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
2017-07-25dbwrap: Add dbwrap_do_lockedVolker Lendecke3-0/+45
With a proper implementation this enables modifications without having to allocate a record. In really performance sensitive code paths this matters. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
2017-07-25dbwrap: Factor out the core dbwrap lock order logicVolker Lendecke1-46/+58
This will allow dbwrap_do_locked to check the order without talloc Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
2017-07-25dbwrap: Add dbwrap_record_storevVolker Lendecke2-2/+10
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>