1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-25 19:17:10 +03:00

590 Commits

Author SHA1 Message Date
Andrew Bartlett
c49145b1ab s4:ldb Use length-limited printf to avoid walking off end of strings
This should ensure the debug messages do not have random characters at
their ends.

Andrew Bartlett
2009-08-21 17:50:50 +10:00
Matthias Dieter Wallnöfer
fa61fdf8b7 s4:ldb - Free the asynchronous result 2009-08-14 01:56:33 +02:00
Andrew Tridgell
4aad79041b make sure we never look past the end of either string in ldb_comparison_fold()
This fixes a bug in the samba3sam test with the python libraries as
noticed by abartlet
2009-08-07 14:34:01 +10:00
Stefan Metzmacher
d005e4dabb s4:ldb: add support for the new Recycle Bin Feature LDAP controls
LDB_CONTROL_SHOW_RECYCLED_OID         1.2.840.113556.1.4.2064
LDB_CONTROL_SHOW_DEACTIVATED_LINK_OID 1.2.840.113556.1.4.2065

metze
2009-07-23 18:04:33 +02:00
Sumit Bose
9d7cb4826a remove all '\n' from ldb_debug 2009-07-14 11:21:11 -04:00
Andrew Bartlett
da45d5215d s4:ldb Fix talloc hirarchy in LDIF parsing code
The problem here was that some parts of the ldb_message were still
attached to the ldb_ldif structure, and when only the message was
taken (and the ldif free'ed to reclaim memory) we refereced free'ed
memory.

Andrew Bartlett
2009-07-06 09:50:47 +10:00
Andrew Kroeger
994506ae2e ldb: Properly handle NULL when copying attr lists.
When copying an attribute list, ensure the list itself is not NULL before
attempting to access elements of the list.
2009-06-29 13:40:08 +10:00
Andrew Tridgell
48dbfc89cf fixed server side sorting of case-insensitive strings
The sort module uses ldb_comparison_fold() as the comparison function
for case-insensitive attributes. In other places the function is being
used to produce a boolean, but for sorting we care about ordering.

The n1 - n2 return was sorting by length, not value
2009-06-10 10:13:55 +10:00
Andrew Tridgell
7f16c29f10 when comp_num is zero, the case folded DN is always ""
This fixes a bug where we would look at an uninitialised
dn->linearized
2009-06-01 12:58:48 +10:00
Andrew Kroeger
bf863bccb6 s4:ldb:modules: Correct typos. 2009-05-26 16:38:39 -04:00
Jelmer Vernooij
af6316d150 Provide a ldb_global_init() function for compatibility with older versions of LDB
(including the one in Samba 3).
2009-04-23 18:59:37 +02:00
Andrew Tridgell
9181637170 fixed internal handling of attribute deletion 2009-04-07 16:33:54 +10:00
Andrew Tridgell
9539e2b508 major upgrade to the ldb attribute handling
This is all working towards supporting the full WSPP schema without a
major performance penalty.

We now use binary searches when looking up classes and attributes. We
also avoid the loop loading the attributes into ldb, by adding a hook
to override the ldb attribute search function in a module. The
attributes can thus be loaded once, and then saved as part of the
global schema. 

Also added support for a few more key attribute syntaxes, as needed
for the full schema.
2009-04-02 16:42:21 +11:00
Stefan Metzmacher
6802394212 s4:ldb: allow nested events until the code is fixed to avoid them
metze
2009-03-12 14:21:20 +01:00
Stefan Metzmacher
1e4f78cc41 s4:ldb: setup tevent debug functions on a selfcreated event context
metze
2009-03-12 12:04:30 +01:00
Simo Sorce
1cd7fe7194 Fix headers, ldb_includes.h is a private header,
do not reference it from ldb.h
2009-02-23 17:38:11 -05:00
Simo Sorce
689b8f5bb3 Make all transactions nested in ldb. The current samba4 code expects this
behavior anyway, and given we can only have one transaction active per
ldb context this is the only sane model we can support.

Fix ldb_tdb transactions, we could return back with an error with neither
committing nor canceling the actual tdb transaction in some error paths
within the ltdb commit and cancel transaction paths.

Added also some debugging to trace what was going on.
2009-02-23 13:33:19 -05:00
Simo Sorce
0245b9b973 Explicitly include ldb_handlers.h where necessary 2009-01-30 20:12:50 -05:00
Simo Sorce
1f2b5ea97c Add helper function to get a module name, may be useful for debugging. 2009-01-30 10:18:52 -05:00
Simo Sorce
380874ef86 Fix the mess with ldb includes.
Separate again the public from the private headers.

Add a new header specific for modules.
Also add service function for modules as now ldb_context and ldb_module are
opaque structures for them.
2009-01-30 01:02:03 -05:00
Stefan Metzmacher
d965ff05c9 s4:ldb: remove dependency to samba4's events wrapper
metze
2009-01-21 10:44:04 +01:00
Stefan Metzmacher
183c379fe5 s4:lib/tevent: rename structs
list=""
list="$list event_context:tevent_context"
list="$list fd_event:tevent_fd"
list="$list timed_event:tevent_timer"

for s in $list; do
	o=`echo $s | cut -d ':' -f1`
	n=`echo $s | cut -d ':' -f2`
	r=`git grep "struct $o" |cut -d ':' -f1 |sort -u`
	files=`echo "$r" | grep -v source3 | grep -v nsswitch | grep -v packaging4`
	for f in $files; do
		cat $f | sed -e "s/struct $o/struct $n/g" > $f.tmp
		mv $f.tmp $f
	done
done

metze
2008-12-29 20:46:40 +01:00
Matthias Dieter Wallnöfer
dde0964d72 Small cosmetic LDB patch regarding return values.
It changes some "return 0" in "return LDB_SUCCESS"
2008-12-19 09:54:20 -05:00
Andrew Bartlett
596fe759e1 s4:ldb: make it possible to return per entry controls
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-17 12:29:27 +11:00
Andrew Bartlett
f7c53e0add s4:ldb: use try to print the extended dn in the ldif output
This allows searches with the extended DN control to still print the
extended DN in ldif output (it would otherwise be parsed and hidden in
the structure).

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-17 12:29:25 +11:00
Andrew Bartlett
aa3eab70d5 s4:ldb: add infrastructure for extended dn handlers
This introduces a new set of pluggable syntax, for use on the
extended DN, and uses them when parsing the DN.

If the DN appears to be in the extended form, we no longer return the
full DN 'as is', but only return the normal part from
ldb_dn_get_linearized().

When validating/parsing the DN we validate not only the format of the
DN, but also the contents of the GUID or SID (to ensure they are
plausable).

We also have functions to set and get the extended components on the DN.

For now, extended_dn_get_linearized() returns a newly constructed and
allocated string each time.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2008-12-17 12:29:23 +11:00
Andrew Tridgell
a226d86dce Merge branch 'master' of ssh://git.samba.org/data/git/samba 2008-12-03 17:47:39 +11:00
Andrew Bartlett
5b796adb12 Print unconvertable ldb element values as base64.
If an LDB element cannot be converted into a printable form, we should
still print it, just with safety applied.

Andrew Bartlett
2008-11-17 10:06:58 +11:00
Andrew Tridgell
41a1c882d4 don't give errors when an empty modules list is given to ldb 2008-11-06 11:13:37 +11:00
Andrew Bartlett
9381a78c39 Use ldb_dn_from_ldb_val to avoid possible over-run of the value.
The ldb_val is length-limited, and while normally NULL terminated,
this avoids the chance that this particular value might not be, as
well as avoiding a cast.

Andrew Bartlett
2008-11-04 16:06:56 +11:00
Simo Sorce
9da4c3f830 Revert "Length comparison of the linearized version is not correct."
This reverts commit 753af36a3e194f645ec0b68a033199035e71c909.
2008-10-30 08:28:07 -04:00
Simo Sorce
753af36a3e Length comparison of the linearized version is not correct.
The linearized version is not casefolded so length might not match
and yet the strings be equivalent. This can happen if one component
is case-insensitive and a letter that have an uppercase version of
a multibyte character that differ in legth from the corresponding
lowercase one.
2008-10-29 18:07:29 -04:00
Simo Sorce
2deeb99fff Transform the sequence_number operation into a normal extended operation as it should always have been. Make it also async so that it is not a special case. 2008-10-16 12:55:30 -04:00
Stefan Metzmacher
5fc7fb48a0 s4:lib/ldb: fix stupid <SID=...> dn parsing bugs
metze
2008-10-02 11:41:10 +02:00
Simo Sorce
8215374091 LDB ASYNC: Core files 2008-09-29 04:22:18 +02:00
Jelmer Vernooij
b0a95ad2f6 Revert LDB return code patches from Matthias. 2008-09-25 00:01:05 +02:00
Matthias Dieter Wallnöfer
9d849c30bc Cosmetic corrections for the LDB library
This commit applies some cosmetic corrections for the LDB library.
2008-09-24 19:40:03 +02:00
Simo Sorce
508527890a Merge ldb_search() and ldb_search_exp_fmt() into a simgle function.
The previous ldb_search() interface made it way too easy to leak results,
and being able to use a printf-like expression turns to be really useful.
2008-09-23 18:17:46 -04:00
Karolin Seeger
2bb8ef091c Fix typo.
retieve -> retrieve

Karolin
(partialy cherry-picked from 37c64130701ab13b6f34998ac17fec2d128c2e08)
metze
(This used to be commit 4d92e6d582a5b2094b2aaa9008a54b37ccfcc2d7)
2008-09-14 18:26:59 +02:00
Simo Sorce
14965b7260 Always free tmp contexts before returning
(This used to be commit 40b71bbd718f6dee70c0611e527f55c56623dea6)
2008-09-06 12:33:27 -04:00
Andrew Tridgell
cc43037f19 fixed a problem with length limited ldap values
The core ldb code for string matching assumed NULL terminated strings,
whereas the anr module used data_blob_const() to effectively truncate
a ldb_val by changing its length. The ldb code is supposed to be based
around length limited blobs, not NULL terminated strings, so the
correct fix was to change the string comparison functions to be length
limited
(This used to be commit 26c6aa5a80ffaf06fc33f30a6533f8f16ef538bc)
2008-08-22 17:36:56 +10:00
Andrew Bartlett
4ad97a1d05 Don't walk past the end of ldb values.
This is a partial fix towards bugs due to us walking past the end of
what we think are strings in ldb.  There is much more work to do in
this area.

Andrew Bartlett
(This used to be commit 5805a9a8f35fd90fa4f718f73534817fa3bbdfd2)
2008-08-21 19:24:58 +10:00
Andrew Bartlett
4016cfcab7 Don't allow a NULL syntax
(This used to be commit 505a0c2b702b696b91dab683626bb25b14a49c38)
2008-08-21 12:51:06 +10:00
Andrew Tridgell
9dffeab5a8 don't overwrite fixed attributes with @ATTRIBUTES
(This used to be commit e860fc171fd127d73df23336089c1479911953da)
2008-08-20 16:00:54 +10:00
Andrew Tridgell
f96f623854 Merge commit 'origin/v4-0-test' into v4-0-test
(This used to be commit 3bdc906eb63a494f0d8478c13f8330828aa2f725)
2008-08-20 15:50:58 +10:00
Andrew Tridgell
7e1c62f8b6 added a LDB_ATTR_FLAG_FIXED so the schema module can mark attributes
as never to be removed.
(This used to be commit 9dce558206a2ce70c69b9b6c5c3c9c58ee165b1d)
2008-08-20 15:46:58 +10:00
Andrew Bartlett
1dc5e75218 Allow attributes to be overwritten, not just added to
(This used to be commit 0aebae91be0fba7ffa94d73946a94aea930a252a)
2008-08-18 20:21:31 +10:00
Stefan Metzmacher
5ccfd6a90e ldb: allow ldb modules to specify LDB_MODULE(name) or LDB_BACKEND(name)
metze
(This used to be commit 1d5b714438a955d76f92f4ccd8aa2f7f89ffa5fd)
2008-06-30 09:14:07 +02:00
Andrew Tridgell
310875e637 Change our module code to not use the special symbol name init_module()
Current glibc libraries include a function called init_module(). If we
use the same name, then a dlsym() can find the glibc function if the
module doesn't have an initialisation function.

In ldb, none of our modules have an init_module(), so we end up calling the libc
functions with bogus arguments.
(This used to be commit 1b0621068998590e7b1e9528b78744dcd2cd5909)
2008-06-17 13:11:29 +10:00
Simo Sorce
59ce567491 Note that making ldb the event context parent seem to lead to races when
freeing up resources. Try to avoid races by making the autofree context
be the parent of the event system
(This used to be commit 10ffa87b6b7ebfe51e81819feb93a72e9ec10418)
2008-06-15 15:06:26 -04:00