ae6947cc48
s4-regsitry: Check return value of ldb_msg_add_empty().
...
Found by Coverity.
Signed-off-by: Andreas Schneider <asn@samba.org >
Reviewed-by: Günther Deschner <gd@samba.org >
2012-12-21 13:55:59 +01:00
7e0bef604a
s4:lib/registry/ldb.c - quit the deletion of a not-existing default value with WERR_BADFILE
...
Reviewed-by: Jelmer
2011-11-03 20:10:06 +01:00
6b5a296b4a
s4:lib/registry/ldb.c - don't use search filters for base searches
...
They are not necessary in this case.
Reviewed-by: Jelmer
2011-11-03 20:10:06 +01:00
15e84a9a09
charcnv: removed the allow_badcharcnv and allow_bad_conv options to convert_string*()
...
we shouldn't accept bad multi-byte strings, it just hides problems
Autobuild-User: Andrew Tridgell <tridge@samba.org >
Autobuild-Date: Thu Mar 24 01:47:26 CET 2011 on sn-devel-104
2011-03-24 01:47:26 +01:00
8dc92c8f71
ldb: use #include <ldb.h> for ldb
...
thi ensures we are using the header corresponding to the version of
ldb we're linking against. Otherwise we could use the system ldb for
link and the in-tree one for include
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org >
2011-02-10 06:51:07 +01:00
ce2004d631
s4: fixed some printf format errors
2010-09-15 15:39:35 +10:00
6baa834ebe
s4-ldb: use LDB_FLAG_MOD_TYPE() to extract element type from messages
...
The flags field of message elements is part of a set of flags. We had
LDB_FLAG_MOD_MASK for extracting the type, but it was only rarely
being used (only 1 call used it correctly). This adds
LDB_FLAG_MOD_MASK() to make it more obvious what is going on.
This will allow us to use some of the other flags bits for internal
markers on elements
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org >
2010-08-17 21:21:50 +10:00
21c2155126
s4:lib/registry/ldb.c - free some "msg" objects earlier through explicit "talloc_free"s
...
No other functional change
2010-07-01 16:35:12 +02:00
de8a339cdf
s4:registry - move some common constraint checks to the "local" backend
...
They should also be enforced when we don't use "ldb".
2010-07-01 15:48:06 +02:00
809c747900
s4:lib/registry/ldb.c - refactor "reg_path_to_ldb"
...
This makes it easier to understand and would also support splitting in more
DN components.
2010-07-01 15:48:04 +02:00
50ae292e60
s4:lib/registry/ldb.c - use "ldb_path" rather than "ldap_path" as LDB key varibale identifiers
2010-07-01 15:48:04 +02:00
d0e877e785
s4:lib/registry/ldb.c - "ldb_add_key" - fix talloc handling
...
- free "msg" when possible
- prevent "talloc_strdup"s where not necessary
2010-07-01 15:48:04 +02:00
e6371246ef
s4:lib/registry/ldb.c - add a missing brace
...
Sorry didn't check that earlier.
2010-06-28 23:13:04 +02:00
ba01b216e2
s4:lib/registry/ldb.c - fix memory handling in "ldb_open_key"
2010-06-28 23:02:56 +02:00
094c1034d2
s4:lib/ldb/registry.c - handle the classname in the right way
...
This is for "ldb_get_key_info".
2010-06-28 23:02:56 +02:00
2fb3d8a6cc
s4:lib/registry/ldb.c - remove really useless "local_ctx"
...
"mem_ctx" should fit for these few local allocations.
2010-06-28 23:02:56 +02:00
3935502c67
s4:lib/registry/ldb.c - retrieve the classname correctly in "ldb_get_subkey_by_id"
2010-06-28 23:02:56 +02:00
77e87e66b0
s4:lib/registry/ldb.c - change the "ldb_get_value" implementation to use the value cache and not an LDB lookup
...
In addition this fixes the use of special characters in registry object names.
2010-06-28 23:02:55 +02:00
408a3aa308
s4:lib/registry/ldb.c - cosmetic - fix comment
2010-06-25 08:48:31 +02:00
14386e6ec5
s4:lib/registry/ldb.c - cosmetic - wrap lines
2010-06-25 08:48:08 +02:00
8d0b67b644
s4:registry/ldb.c - Break with "NULL" as an error case when the data doesn't fit in the "reg_ldb_pack_value" function
2010-03-29 21:38:18 +02:00
e25e60ba2f
s4:registry/ldb.c - Always check the "name" attribute for != NULL
...
If it's NULL return invalid parameter as Windows does. The name is "" if it
refers to the default value.
2010-03-29 20:53:38 +02:00
90d2902c73
s4:registry - move the UTF16 length calculation for "reg_key_get_info" into the RPC server code
...
It does fit better there.
2010-03-29 20:36:32 +02:00
3a2488870f
s4:registry - "reg_ldb_pack_value" - provide workarounds when the server receives non-standard data.
...
For now we reset/delete the "data" attribute. Anyway there is the need to find
a better solution (we probably want to change the format and save all data as
we got it like Windows itself does).
These workarounds are needed since for example the Windows 2000 Registry Editor
initialises empty REG_SZ strings with content '\0' and length 1 (not a valid
UTF16 sequence - "convert_string_talloc" breaks). So we simply reset/delete the
"data" attribute which works (no content).
2010-03-23 16:46:17 +01:00
0426b5b786
s4:registry - "LDB backend" - fix indentation
2010-03-23 16:46:17 +01:00
a6f5e495b1
s4:registry - "LDB backend" - revert the length check for UTF16 strings
...
Let this do the "convert_string_talloc" function as it was before.
2010-03-23 00:26:01 +01:00
bca353561e
s4:registry - "LDB backend" - revert the binary storage of "REG_SZ", "REG_DWORD" and "REG_QWORD"
...
We agreed that this hack isn't the best of the possible solutions.
2010-03-23 00:16:19 +01:00
43170dafbc
s4:registry - adaptions for "add memory contexts for delete value/key functions"
2010-03-22 22:31:00 +01:00
61761cbac8
s4:registry - "LDB backend" - "reg_ldb_unpack_value"
...
When the name isn't found it is the default value. Call it "" to be consistent.
2010-03-21 23:36:09 +01:00
7b54964a25
s4:registry - "LDB backend" - "reg_key_get_info"
...
Consider also the default value (if it exists) as value. That means:
- count it when setting "num_values"
- take also his buffer length as a candidate for the maximum value buffer length
This is what Windows does.
2010-03-21 23:19:32 +01:00
773faa5063
s4:registry - "LDB backend" - "ldb_get_default_value"
...
There exist also key objects (the hives) which don't contain a "key" entry at
all. This prevented to display their default value (my fault).
2010-03-21 23:02:31 +01:00
b7f129f5c4
s4:registry - "LDB backend" - make the key argument "const" of ldb_get_default_value
2010-03-21 22:19:12 +01:00
ea621efee7
s4:registry - "LDB backend" - fix indentation
2010-03-21 22:04:28 +01:00
ad83995de5
s4:registry - "LDB backend" - reg_key_get_info - adapt max. subkey and value length
...
Those lengths are measured in UTF8 string lengths and not in UTF16 ones (the
returned strings are generally in this format). Discovered this by checking the
s3 registry code.
Therefore we have to multiply the both numbers by two.
Discovered with the "regedt32" (old NT registry editor).
2010-03-21 15:33:52 +01:00
cc4e5c8beb
s4:registry - "LDB backend" - don't test for "0" as string termination on binary and unknown typed values
2010-03-21 14:10:17 +01:00
2f79217964
s4:registry - handle type "DWORD_BIG_ENDIAN" as type "DWORD"
...
Further tests show that (at least per default) there aren't any differences
between them.
2010-03-21 14:03:57 +01:00
a55031792d
s4:registry - "LDB backend" - fix up memory allocation for dynamic integers
...
We don't need to reserve memory for NULL termination when storing data as
integers.
2010-03-21 14:03:55 +01:00
1d49a266ab
s4:registry - "LDB backend" - Fix up the storage of binary REG_SZ/REG_EXPAND_SZ values
...
There seem to exist also UTF16 sequences which have byte sizes of a multiple of
two but are invalid (gd's winreg test shows this).
2010-03-21 14:03:23 +01:00
abe75a5c8c
s4:registry - use a macro for reverse byte order
2010-03-16 09:41:03 +01:00
2f686d8523
s4:registry - introduce the "REG_DWORD_BIG_ENDIAN" datatype
...
It's like the normal REG_DWORD type but the byte order swapped
2010-03-16 08:58:31 +01:00
00934d4c2f
s4:registry - fix up the output of hexadecimal values
...
Use a fixed-length representation to avoid platform-specific issues.
2010-03-15 13:27:35 +01:00
80300af278
s4:registry - add support for REG_QWORD values
...
Basically the same as REG_DWORD but these are eight byte long.
2010-03-15 13:27:34 +01:00
bb1ac0c75c
s4:registry - ldb.c - provide a mechanism for storing UTF8/binary REG_DWORD values
...
We need to support this as gd's WINREG torture test shows.
2010-03-14 18:46:22 +01:00
fbce5ded30
s4:registry - ldb.c - provide a mechansim for storing UTF8/binary REG_SZ/REG_EXPAND_SZ values
...
We need to support this as gd's WINREG torture test shows.
2010-03-14 18:46:22 +01:00
95bfd17e08
s4:registry - ldb.c - fix up a strange LDB filter
2010-03-14 18:46:21 +01:00
f72790daaa
s4:registry - ldb.c - fix up the memory handling in "reg_ldb_unpack_value"
...
Don't substitute existing data blobs with new ones and make sure, that the
result objects in the data blob don't have memory dependencies of the LDB value
input.
2010-03-14 18:46:21 +01:00
33eb1c95e5
s4:registry - ldb.c - check more for possible "Out of memory" circumstances
2010-03-14 18:46:21 +01:00
9b3c45754e
s4:registry - ldb.c - remove superfluous "query" variable
2010-03-14 18:46:21 +01:00
cd3c870333
s4:registry - ldb.c - Consider result values in "reg_ldb_pack_value"
...
Break on errors and return NULL and otherwise the message pointer.
2010-03-14 18:46:20 +01:00
3c6792bc76
s4:registry - ldb.c - Move the "val" structure
...
Move it into the REG_SZ/REG_EXPAND_SZ case block since it's used only there.
Plus convert it from static into dynamic talloc'ed.
2010-03-14 18:46:20 +01:00