1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-23 20:59:10 +03:00
Commit Graph

844 Commits

Author SHA1 Message Date
8ddc2aa0e1 s3:registry: fix race in reg_setvalue that could lead to data corruption
(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-25 14:31:10 +02:00
705ea5b8c2 s3:registry: untangle assignment from check and add a debugmessage in reg_setvalue()
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:31:10 +02:00
04aa303fb1 s3:registry: don't leak the old contents when updating the value cache
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:31:09 +02:00
f4747250ea s3:registry: fix debug message in regdb_store_values_internal()
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:31:09 +02:00
44159330db s3:registry: improve log message in regdb_unpack_values()
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:31:09 +02:00
6f67f5d5b7 s3:registry: fix a debug message typo
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:31:09 +02:00
64a9ab4f82 s3:registry: add a new function regval_ctr_value_byname()
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-25 14:31:01 +02:00
2fc610caf5 s3:registry: rename regval_ctr_key_exists() to regval_ctr_value_exists()
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:05 +02:00
6c016734aa s3:registry:reg_api: fix reg_queryvalue to not fail when values are modified while it runs
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:05 +02:00
877af95ed7 s3:registry: make regdb_values_need_update() static
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:05 +02:00
bc48100530 s3:registry: make regdb_subkeys_need_update() static
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:05 +02:00
a3b1c13cd4 s3:registry: make regdb_store_values() static
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:04 +02:00
6ab2eb8295 s3:registry: make regdb_fetch_values() static
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:04 +02:00
5fdd602605 s3:registry: make regdb_fetch_keys() static
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:04 +02:00
4cf44177ac s3:registry: make regdb_store_keys() static
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25 14:23:04 +02:00
37715930c2 s3:registry: printing backend: use regdb options via ops struct, not directly
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-25 14:23:04 +02:00
b8dea7e82d Wrong assertion/comparison: Compare value not pointer
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-04-13 02:23:35 +02:00
6f1b735cc2 adt_tree: Avoid WERROR. 2012-03-24 16:41:35 +01:00
3b5326e987 s3-registry Remove unused dup_registry_value() and free_registry_value() 2012-02-17 12:19:29 +01:00
7824fd5954 s3-registry: Remove unused prs_uint8()
Found by callcatcher: http://www.skynet.ie/~caolan/Packages/callcatcher.html

Andrew Bartlett
2012-02-10 16:45:12 +11:00
f1545048eb s3:registry: do not write empty value lists to registry.tdb
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-24 13:54:09 +01:00
45e61fcf61 s3: Add a "lock_order" argument to db_open
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-18 14:48:04 +01:00
bd5fe0a333 s3-perfcount: fix incorrect array length calculations
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
2012-01-04 16:54:37 +01:00
75d3b9ce08 s3: Fix some False/NULL hickups
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Tue Dec 20 13:13:17 CET 2011 on sn-devel-104
2011-12-20 13:13:17 +01:00
2a69de6fde s3:registry: replace use of rawmemchr by portable equivalent use of strchr. 2011-12-06 10:45:42 +01:00
d74b3f941f lib/util: factor out tdb_data_is_empty
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-03 05:20:30 +01:00
789aa9aab2 s3:registry: do not use regdb functions during db upgrade
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-12-03 03:48:31 +01:00
3a2fd7c0e2 s3:registry: write INFO/version if we create registry.tdb
Signed-off-by: Michael Adam <obnox@samba.org>
2011-11-25 13:24:34 +01:00
6727429aea s3:registry: prevent unnecessary transactions in regdb_init
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-09 15:06:58 +01:00
66eefde53b s3-registry: fix upgrade code
Assume REGDB_VERSION_V1 if no version key found in registry.tdb

Signed-off-by: Michael Adam <obnox@samba.org>
2011-11-03 10:13:41 +01:00
7b5fb7d9e8 replace: Add don't include unistd.h directly and add uid_wrapper. 2011-10-27 13:32:02 +02:00
2f65ae25df s3: Include uid_wrapper where it is missing. 2011-10-27 13:32:02 +02:00
6b28a517e3 s3:registry add function srprs_hive()
Signed-off-by: Michael Adam <obnox@samba.org>
2011-10-12 22:45:53 +02:00
240d6217dd s3:registry: improve regdb_create_subkey_internal() to always complete 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-12 03:49:05 +02:00
603c3e1bcb s3:dbwrap: convert dbwrap_fetch_int32() to NTSTATUS return code
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-11 14:17:58 +02:00
7057b4d1ac s3:registry: convert reg_backend_db to use dbwrap wrapper functions
Avoid direct use of the db_record and db_context structs
2011-10-11 14:17:57 +02:00
0e28448a78 s3:dbwrap: convert dbwrap_fetch(), dbwrap_fetch_bystring() and dbwrap_fetch_bystring_upper() to NTSTATUS 2011-10-11 14:17:56 +02:00
7a72c84ee7 s3:dbwrap: move the db_open_rbt() prototype to a new header dbwrap_rbt.h 2011-10-11 14:17:55 +02:00
95bb2c23e6 s3:registry: fix the test for a REG_SZ blob possibly being a zero terminated 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-02 01:26:04 +02:00
b9da423556 s3:registry: reg_format: handle unterminated REG_SZ blobs
Signed-off-by: Michael Adam <obnox@samba.org>
2011-10-01 23:51:05 +02:00
cc6ecd4ead s3:registry: fix a debug message in the v2_to_v3 upgrade code
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Mon Sep 19 10:31:45 CEST 2011 on sn-devel-104
2011-09-19 10:31:45 +02:00
14876e65ea s3: Fix Coverity ID 2611, UNINIT
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Wed Sep  7 19:47:49 CEST 2011 on sn-devel-104
2011-09-07 19:47:49 +02:00
74cdddea1b s3: Fix Coverity ID 2612, UNINIT 2011-09-07 18:20:22 +02:00
dfbffac977 s3:registry: fix a debug message typo
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Fri Sep  2 11:47:11 CEST 2011 on sn-devel-104
2011-09-02 11:47:11 +02:00
fff30e9f88 s3:registry: introduce a define REGDB_CODE_VERSION and use it in regdb code.
This is to not use the precise code version REGDB_VERSION_V3 explicitly
in the code.
2011-09-02 10:17:20 +02:00
39c6de28fa s3:registry: rename REGVE_Vx toREGDB_VERSION_Vx for consistency 2011-09-02 10:17:19 +02:00
e579c84b4f s3:registry: implement regdb_set_secdesc() with regdb_trans_do()
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Fri Sep  2 00:51:40 CEST 2011 on sn-devel-104
2011-09-02 00:51:40 +02:00
861f04bec0 s3:registry: implement regdb_store_values() with regdb_trans_do()
This adds the runtime check for changed regdb format version to store_values
2011-09-01 23:18:18 +02:00
6832ae4c6d s3:registry: change regdb_store_values_internal() from bool to NTSTATUS return code 2011-09-01 23:18:18 +02:00
e1d7cfb41b s3:registry: use the regdb_trans_do wrapper instead of using dbwrap_trans_do directly in the registry db code.
This verifies the regdb format version number before the corresponding write operations.
2011-09-01 23:18:18 +02:00