summaryrefslogtreecommitdiff
path: root/source3/registry
AgeCommit message (Collapse)AuthorFilesLines
2012-04-25s3:registry: untangle assignment from check in regkey_open_onelevel()Michael Adam1-1/+2
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix seqnum race in regdb_fetch_keys_internalMichael Adam1-3/+22
This prevents race between fetching seqnum and key content. Because there is currently no way to atomically fetch the record along with the seqnum, I use a loop. This is far from optimal and should should ideally be done differently. But for now it fixes the race. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix seqnum race in fetch_values_internalMichael Adam1-3/+21
This prevents race between fetching seqnum and key content. Because there is currently no way to atomically fetch the record along with the seqnum, I use a loop. This is far from optimal and should should ideally be done differently. But for now it fixes the race. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: update the seqnum in the subkey cache at the end of ↵Michael Adam1-1/+5
regval_store_keys The purpose is to prevent next reads from going to disk. Note that this will currently only be effective with local tdbs, not with ctdb: For tdb, store and delete bump the seqnum while transaction commit does not. For ctdb, transaction commit bumps the seqnum, while store and delete don't... This needs fixing (in ctdb). Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry:db: update the value container seqnum after storing/deleting to ↵Michael Adam1-1/+22
prevent next read from going to disk if possible Note that this will currently only be effective in the local TDB implementation. For CTDB, this wont work since seqnum currently works differently there (needs fixing): For tdb, store and delete operations bump the db seqnum, while transaction commits don't. For ctdb, the seqnum is bumped by the transaction commit but not by store and delete operations. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: wrap reg_deletekey() into a transactionMichael Adam1-2/+25
This is wrong layering but fixes a race condition. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: wrap reg_createkey() in a transactionMichael Adam1-6/+30
This is wrong layering (calling into regdb_transaction* in the reg_api code) but fixes a potential race. It makes the multi-step create procedure atomic. This should completely be done in the backend. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: untangle assignments from checks in reg_createkey()Michael Adam1-2/+6
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: wrap reg_deletevalue() in a transactionMichael Adam1-4/+30
This is at the wrong layer, but if fixes a race potentially causing data corruption by concurrent access. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: untangle assignment from check in reg_deletevalue()Michael Adam1-1/+2
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix race in reg_setvalue that could lead to data corruptionMichael Adam1-6/+33
(there was no lock around fetching the values and storing them) The layering is wrong in that it uses regdb transactions in reg_api Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: untangle assignment from check and add a debugmessage in ↵Michael Adam1-1/+3
reg_setvalue() Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: don't leak the old contents when updating the value cacheMichael Adam1-0/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix debug message in regdb_store_values_internal()Michael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: improve log message in regdb_unpack_values()Michael Adam1-1/+2
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix a debug message typoMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: add a new function regval_ctr_value_byname()Michael Adam2-0/+20
This is like regval_ctr_key_exists() but does not return bool, but the regval_blob instead, if found, and NULL if not found. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: rename regval_ctr_key_exists() to regval_ctr_value_exists()Michael Adam3-4/+4
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry:reg_api: fix reg_queryvalue to not fail when values are modified ↵Michael Adam1-1/+45
while it runs Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_values_need_update() staticMichael Adam2-2/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_subkeys_need_update() staticMichael Adam2-2/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_store_values() staticMichael Adam2-2/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_fetch_values() staticMichael Adam2-2/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_fetch_keys() staticMichael Adam2-2/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_store_keys() staticMichael Adam2-2/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: printing backend: use regdb options via ops struct, not directlyMichael Adam1-9/+10
just like the other backends. This is in preparation of making the backend functions private Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-13Wrong assertion/comparison: Compare value not pointerOlaf Flebbe1-2/+2
Signed-off-by: Jeremy Allison <jra@samba.org> Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Fri Apr 13 02:23:36 CEST 2012 on sn-devel-104
2012-03-24adt_tree: Avoid WERROR.Jelmer Vernooij1-1/+4
2012-02-17s3-registry Remove unused dup_registry_value() and free_registry_value()Andrew Bartlett2-56/+0
2012-02-10s3-registry: Remove unused prs_uint8()Andrew Bartlett2-23/+0
Found by callcatcher: http://www.skynet.ie/~caolan/Packages/callcatcher.html Andrew Bartlett
2012-01-24s3:registry: do not write empty value lists to registry.tdbGregor Beck1-0/+5
Signed-off-by: Michael Adam <obnox@samba.org> Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Tue Jan 24 13:54:09 CET 2012 on sn-devel-104
2012-01-18s3: Add a "lock_order" argument to db_openVolker Lendecke1-3/+6
This will be used to enforce a lock hierarchy between the databases. We have seen deadlocks between locking.tdb, brlock.tdb, serverid.tdb and notify*.tdb. These should be fixed by refusing a dbwrap_fetch_locked that does not follow a defined lock hierarchy.
2012-01-04s3-perfcount: fix incorrect array length calculationsDavid Disseldorp1-9/+17
As reported by Ismail Doenmez (idonmez@suse.com), sizeof() is incorrectly used by _reg_perfcount_init_data_block() in an attempt to determine the length of a talloced array. Signed-off-by: Günther Deschner <gd@samba.org> Autobuild-User: Günther Deschner <gd@samba.org> Autobuild-Date: Wed Jan 4 16:54:37 CET 2012 on sn-devel-104
2011-12-20s3: Fix some False/NULL hickupsVolker Lendecke1-9/+9
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Tue Dec 20 13:13:17 CET 2011 on sn-devel-104
2011-12-06s3:registry: replace use of rawmemchr by portable equivalent use of strchr.Michael Adam1-1/+1
2011-12-03lib/util: factor out tdb_data_is_emptyGregor Beck1-4/+0
Signed-off-by: Michael Adam <obnox@samba.org> Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Sat Dec 3 05:20:30 CET 2011 on sn-devel-104
2011-12-03s3:registry: do not use regdb functions during db upgradeGregor Beck1-55/+141
It is importante to not use the database backend implementation in the upgrade. Otherwise this would only work as long as this is the newset version. In future versions of the registry, this (then) intermediate upgrade step would change in behaviour and not work as expected any more. Signed-off-by: Michael Adam <obnox@samba.org>
2011-11-25s3:registry: write INFO/version if we create registry.tdbGregor Beck1-0/+7
Signed-off-by: Michael Adam <obnox@samba.org>
2011-11-09s3:registry: prevent unnecessary transactions in regdb_initMichael Adam1-0/+4
Skip the transaction for the upgrade code, if the database is already at code-level. Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Wed Nov 9 15:06:59 CET 2011 on sn-devel-104
2011-11-03s3-registry: fix upgrade codeBjörn Baumbach1-4/+18
Assume REGDB_VERSION_V1 if no version key found in registry.tdb Signed-off-by: Michael Adam <obnox@samba.org>
2011-10-27replace: Add don't include unistd.h directly and add uid_wrapper.Andreas Schneider1-2/+0
2011-10-27s3: Include uid_wrapper where it is missing.Andreas Schneider1-0/+1
2011-10-12s3:registry add function srprs_hive()Gregor Beck3-38/+89
Signed-off-by: Michael Adam <obnox@samba.org>
2011-10-12s3:registry: improve regdb_create_subkey_internal() to always complete ↵Michael Adam1-2/+12
incomlete keys Originally, this function did not create the key's subkey list record if only the record was listed in the subkeylist of its parent key. Now this is fixed. Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-10-11s3:dbwrap: convert dbwrap_fetch_int32() to NTSTATUS return codeMichael Adam1-4/+11
Return the int32 value retrieved from the db by reference. Before this, return value "-1" was used as a error indication, but it could also be a valid value from the database.
2011-10-11s3:registry: convert reg_backend_db to use dbwrap wrapper functionsMichael Adam1-34/+43
Avoid direct use of the db_record and db_context structs
2011-10-11s3:dbwrap: convert dbwrap_fetch(), dbwrap_fetch_bystring() and ↵Michael Adam2-7/+14
dbwrap_fetch_bystring_upper() to NTSTATUS
2011-10-11s3:dbwrap: move the db_open_rbt() prototype to a new header dbwrap_rbt.hMichael Adam1-0/+1
2011-10-02s3:registry: fix the test for a REG_SZ blob possibly being a zero terminated ↵Michael Adam1-1/+10
ucs2 string 1. catch data blobs with odd number of bytes (not an ucs2 string at all) 2. test the right ucs2 character to be 0 (prevent out-of bounds access/potential segfault) Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Sun Oct 2 01:26:05 CEST 2011 on sn-devel-104
2011-10-01s3:registry: reg_format: handle unterminated REG_SZ blobsGregor Beck1-1/+9
Signed-off-by: Michael Adam <obnox@samba.org>