1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-22 07:17:05 +03:00

97 Commits

Author SHA1 Message Date
Matthias Dieter Wallnöfer
0f163eb611 ldb:ldb_msg_add_linearized_dn - handle NULL DNs
Don't let the routine crash

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-09-24 09:25:41 +10:00
Kamen Mazdrashki
88f1798100 s4-ldb: use TALLOC_CTX type instead of 'void' 2010-07-29 00:53:49 +03:00
Kamen Mazdrashki
31aeb841c9 s4-dsdb: use ldb_msg_normalize() in ldb_msg_difference()
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-19 17:33:35 +10:00
Kamen Mazdrashki
e5a9469a88 s4-ldb: Add ldb_msg_normalize() to accept a memory context from client
Previos implementation from ldb_msg_canonicalize()
was moved into this function and now ldb_msg_canonicalize()
is based on ldb_msg_normalize()

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-19 17:33:34 +10:00
Kamen Mazdrashki
48574ccc3f s4-ldb: Use _ldb_msg_add_el() in ldb_msg_add()
Previous implementation was 'leaking' attribute name
string, that is allocated by ldb_msg_add_empty()

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-19 17:33:34 +10:00
Kamen Mazdrashki
3944c81d08 s4-ldb: Use _ldb_msg_add_el() in ldb_msg_add_empty()
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-19 17:33:34 +10:00
Kamen Mazdrashki
8d523d46f5 s4-ldb: Add separate function to add empty element into ldb_msg
It just adds another element, nothing more.
Caller is responsible to fill-in the added element and
determine how to handle data allocation contexts.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-19 17:33:34 +10:00
Kamen Mazdrashki
a95fd4ef64 s4-ldb: Write more explanatory comment for ldb_msg_add()
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-19 17:33:34 +10:00
Kamen Mazdrashki
65b967a706 s4-ldb: Implement ldb_msg_difference() function to accept a memory context from client
Old implementation from ldb_msg_diff() was moved into
this this function but with changed interface
so that a memory context may be passed.

ldb_msg_diff() function is now based on ldb_msg_difference(),
which fixes a hidden leak - internal ldb_msg object
(returned from ldb_msg_canonicalize) wasn't freed
and stays attached to ldb_context for the connection lifetime.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-19 17:33:33 +10:00
Matthias Dieter Wallnöfer
28cb8839b7 ldb:ldb_msg_remove_attr - provide a better implementation
We can have some special (bad) messages which contain multiple message elements
for the same attribute. The AD password change ones are such an example.
2010-06-06 23:13:00 +02:00
Matthias Dieter Wallnöfer
74fad2568d s4:ldb_msg_element_compare - fix typo in comment 2010-06-02 09:39:34 +02:00
Matthias Dieter Wallnöfer
a8788ce523 ldb:ldb_msg_add_steal_string - prevent also there the addition of strings with length 0 2010-05-31 22:43:28 +02:00
Matthias Dieter Wallnöfer
9ad9fd5b71 ldb:ldb_msg.c - use result constant 2010-05-13 17:10:27 +02:00
Matthias Dieter Wallnöfer
4e16a285c7 LDB:common - Change counters to "unsigned" where appropriate
To count LDB objects use variables of type "unsigned (int)" or "long long int"
on binary or downto searches.

To count characters in strings use "size_t".

To calculate differences between pointers use "ptrdiff_t".
2010-03-08 12:52:24 +01:00
Brad Hards
1683d090cc LDB related spelling fixes.
Signed-off-by: Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
2010-02-22 21:45:36 +01:00
Andrew Tridgell
282cc79454 s4-ldb: use TYPESAFE_QSORT() in the rest of the ldb code 2010-02-14 18:44:20 +11:00
Stefan Metzmacher
ca9bc96b96 s4:ldb_msg: first try to decode integers as signed and then fallback to unsigned
LDAP only knowns about signed integers, so let
ldb_msg_find_attr_as_uint() and ldb_msg_find_attr_as_uint64() cope
with it.

metze
2010-01-13 14:52:00 +01:00
Stefan Metzmacher
8d4b913ce2 s4:ldb: be more strict in parsing ldb time strings
metze
2010-01-13 14:51:59 +01:00
Andrew Tridgell
baae6ef9d2 s4-ldb: added ldb_val_to_time()
This is intended as a replacement for ldb_string_to_time() for ldb_val
inputs. This ensures it is length limited and includes additional
validity checks
2010-01-02 08:16:55 +11:00
Crístian Deives
bed9efa6cd s4-ldb: changed ldb_msg_add_dn() to ldb_msg_add_linearized_dn()
this makes the usage clearer

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2009-11-30 20:22:13 +11:00
Andrew Tridgell
51a59e8f9e s4-ldb: added a warning about ldb_msg_add_dn
ldb_msg_add_dn does not copy the dn linearized string
2009-11-20 14:41:27 +11:00
Crístian Deives
1169dd3b50 added new function "ldb_msg_add_dn"
a helper function to a DN element to an ldb_msg using ldb_msg_add_string.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2009-11-20 14:39:01 +11:00
Andrew Bartlett
ae72153daa s4:ldb Allow ldb_msg_canonicalize to handle empty elements
(These are deliberately there in DRS replication).

Andrew Bartlett
2009-11-12 16:34:15 +11:00
Andrew Tridgell
c4cb0c520c s4-ldb: fast path for equal pointers
We compare identical ldb_val values surprisingly often
2009-10-22 12:47:54 +11:00
Matthias Dieter Wallnöfer
d673b49dfc s4:ldb_msg_check_string_attribute - add a comment about the result values 2009-10-18 18:16:31 +02:00
Matthias Dieter Wallnöfer
9d097fa0e0 Revert "s4:ldb_msg - Use LDB constants on results"
This reverts commit 56a8baff3df6a5120b6c7bbca771dfb7c6934fd5.
Simo pointed out that I was wrong here.
2009-10-18 18:15:55 +02:00
Matthias Dieter Wallnöfer
56a8baff3d s4:ldb_msg - Use LDB constants on results 2009-10-18 10:45:30 +02:00
Matthias Dieter Wallnöfer
54ea150f36 s4:ldb_msg_diff - Fixes up possible memory leaks and the python binding of it 2009-10-01 13:59:02 +02:00
Andrew Tridgell
5b20af988c s4-ldb: don't remove a message element beyond the end of the array 2009-09-11 18:02:04 +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
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
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
131c40a421 r26529: Indeed, this belongs in the schema module. Ranged results need to use
an attribute with ';' in the name.

Andrew Bartlett
(This used to be commit f4023b176eabfb3282fe9b999eac8db55a095ab0)
2007-12-21 05:51:52 +01:00
Andrew Bartlett
0d5c5cb372 r25857: Indent
(This used to be commit f42690a90c2f76e7fc130ebbdbd0f93fefacfad6)
2007-12-21 05:44:30 +01:00
Andrew Bartlett
b7f9e85db1 r23993: Attempt to fix bug #4808, reported by mwallnoefer@yahoo.de. The issue
is that when we all ldb_msg_add_empty(), we might realloc() the
msg->elements array.  We need to ensure the source pointer (when
copying an element from the same msg) is still valid, or the data
copied.

Andrew Bartlett
(This used to be commit 0fbea30577233d00e7c6cdd4faaece0f99fc57b1)
2007-10-10 15:01:16 -05:00
Andrew Tridgell
6c973f4e8c r23798: updated old Temple Place FSF addresses to new URL
(This used to be commit 40c0919aaa9c1b14bbaebb95ecce53eb0380fdbb)
2007-10-10 14:59:15 -05:00
Andrew Tridgell
b8d69a7ea2 r23795: more v2->v3 conversion
(This used to be commit 84b468b2f8f2dffda89593f816e8bc6a8b6d42ac)
2007-10-10 14:59:14 -05:00
Andrew Bartlett
e9d19477e4 r23560: - Activate metze's schema modules (from metze's schema-loading-13 patch).
- samba3sam.js: rework the samba3sam test to not use objectCategory,
  as it's has special rules (dnsName a simple match)
- ldap.js: Test the ordering of the objectClass attributes for the baseDN
- schema_init.c: Load the mayContain and mustContain (and system...) attributes when
  reading the schema from ldb
- To make the schema load not suck in terms of performance, write the
  schema into a static global variable
- ldif_handlers.c: Match objectCategory for equality and canonicolisation
  based on the loaded schema, not simple tring manipuation
- ldb_msg.c: don't duplicate attributes when adding attributes to a list
- kludge_acl.c: return allowedAttributesEffective based on schema results
  and privilages

Andrew Bartlett
(This used to be commit dcff83ebe463bc7391841f55856d7915c204d000)
2007-10-10 14:53:27 -05:00
Jelmer Vernooij
52fb06edc2 r22681: Fix standalone ldb build when parent directory name != ldb.
(This used to be commit 1093875d59f1ea9b8bd82277d4f9d8366e584952)
2007-10-10 14:52:00 -05:00
Stefan Metzmacher
7dd80e872d r20731: we need the complex memmove() handling for removing an attribute only in one place
metze
(This used to be commit dfdfdd6cefeac2974a4b3425a49e3dd93ad7e952)
2007-10-10 14:40:33 -05:00
Stefan Metzmacher
71bc79caab r20462: add functions to handle UTCTime strings
metze
(This used to be commit 49c7da812c290e23bb65b98a2710fb90c4a0ece2)
2007-10-10 14:35:52 -05:00
Stefan Metzmacher
a3c0f3035d r20189: remove unused struct element
metze
(This used to be commit d20d1872d5ed1176928b85ef9811c6a5177d0148)
2007-10-10 14:29:20 -05:00
Simo Sorce
8ec78bcbbf r19909: Make this one double as fast
(This used to be commit 67b88e49b896f1d783619b8f96554adaeabe80df)
2007-10-10 14:28:35 -05:00
Simo Sorce
a9e31b33b5 r19832: better prototypes for the linearization functions:
- ldb_dn_get_linearized
  returns a const string

- ldb_dn_alloc_linearized
  allocs astring with the linearized dn
(This used to be commit 3929c086d5d0b3f08b1c4f2f3f9602c3f4a9a4bd)
2007-10-10 14:28:22 -05:00
Simo Sorce
4889eb9f7a r19831: Big ldb_dn optimization and interfaces enhancement patch
This patch changes a lot of the code in ldb_dn.c, and also
removes and add a number of manipulation functions around.

The aim is to avoid validating a dn if not necessary as the
validation code is necessarily slow. This is mainly to speed up
internal operations where input is not user generated and so we
can assume the DNs need no validation. The code is designed to
keep the data as a string if possible.

The code is not yet 100% perfect, but pass all the tests so far.
A memleak is certainly present, I'll work on that next.

Simo.
(This used to be commit a580c871d3784602a9cce32d33419e63c8236e63)
2007-10-10 14:28:22 -05:00
Andrew Bartlett
adae413042 r19731: Modify the ldb_map infrustructure to always map from requested
attributes to backend (remote) attributes.

We can't do a reverse mapping safely where the remote attribute may be
a source for multiple local attributes.  (We end up with the wrong
attributes returned).

In doing this, I've modified the samba3sam.js test to be more
realistic, and fixed some failures in the handling of primaryGroupID.

I've added a new (private) helper function ldb_msg_remove_element() to
avoid a double lookup of the element name.

I've also re-formatted many of the function headers, to fit into
standard editor widths.

Andrew Bartlett
(This used to be commit 186766e3095e71ba716c69e681592e217a3bc420)
2007-10-10 14:28:15 -05:00
Simo Sorce
cc22f65d7b r19490: better to check the return result
(This used to be commit abdc4edbb8f8b8234bad1be05fa92b3f3bc8876c)
2007-10-10 14:24:38 -05:00
Simo Sorce
7f833458ca r19489: Change ldb_msg_add_value and ldb_msg_add_empty to take a foruth argument.
This is a pointer to an element pointer. If it is not null it will be
filled with the pointer of the manipulated element.
Will avoid double searches on the elements list in some cases.
(This used to be commit 0fa5d4bc225b83e9f63ac6d75bffc4c08eb6b620)
2007-10-10 14:24:38 -05:00
Stefan Metzmacher
c403dd11fb r19188: merge from samba3:
fix compiler warnings

metze
(This used to be commit dc139d8715f58b27363266f1426da451907845eb)
2007-10-10 14:20:51 -05:00
Andrew Tridgell
26ece8f697 r18910: Change ldb_msg_add_string() to not actually add an attribute if the
string is zero length. This allows callers to not have to worry about
creating an invalid ldap attribute.

See extensive discussion on samba-technical list :-)
(This used to be commit 7a1db8c2a432b9ab59b29ee1bfce6c8fe8e981a2)
2007-10-10 14:20:20 -05:00