summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/common/ldb_dn.c
AgeCommit message (Collapse)AuthorFilesLines
2009-11-13s4-ldb: make DN escaping/unescaping consistentAndrew Tridgell1-20/+54
The DN escape function was using the form \c where c is any character. The unescape function was using \XX where XX is a 2 digit hex number. The asymmetry led to quite a few problems when we start to deal with DNs containing escape chars, such as CN=foo\0ADEL:XXX. The result was a DN that was not accessible. This patch changes the escaping to follow RFC2253 much more closely. We accept either type of escape, and produce the two types of escape, depending on the character being escaped
2009-11-12s4:ldb Don't segfault if we somehow get an unknown extended dn elementAndrew Bartlett1-0/+8
2009-11-12s4:ldb Remove DN+Binary code from the core ldb_dnAndrew Bartlett1-256/+6
This is now in dsdb_dn. Removing this to a specific wrapper avoids a number of bugs where Binary DNs were being handled incorrectly. This reverts much of tridge's commit fd22e0304782e20b9bbb29464b6c745d409ff4c6 Andrew Bartlett
2009-10-27s4-ldb: '+' can also happen in base64 encoded index DNsAndrew Tridgell1-1/+1
2009-10-25s4-ldb: allow for unescaped '=' in a index DNAndrew Tridgell1-0/+13
The ldb_dn_explode code normally enforces all special characters, including a '=', must be escaped. Unfortunately this conflicts with the ltdb index DNs, which for binary attributes may be base64 encoded. This allows a unescaped '=' as a special case for index DNs.
2009-10-21s4-ldb: allow for non-null terminated ldb_val in ldb_dn_from_ldb_valAndrew Tridgell1-1/+1
The strlen() could go past the end of a non-null terminated value
2009-10-15s4-ldb: removed bugus RDN length checkAndrew Tridgell1-5/+0
This isn't the rDN !
2009-10-02s4-ldb: Add support for binary blobs in DNsAndrew Tridgell1-30/+288
AD has the concept of a DN prefixed with B:NN:XXXXXX: that contains a binary blob. We need to support those in order to give correctly formatted binary blobs for things like wellKnownObjects This implementation is not ideal, as it allows for binary blobs on all DNs, whereas it should only allow them on those with a syntax of 2.5.5.7. We should clean this up in the future, but meanwhile this implementation at least gets us a working DC join of w2k8 to s4. This patch also uses a static function for marking DNs as invalid, which is very useful when debugging this code, as you can break on it in gdb.
2009-09-22Move the check above the tallocAnatoliy Atanasov1-5/+6
2009-09-21Add support in the ldb_dn.c code for MS-ADTS:3.1.1.5.1.2 Naming ConstraintsAnatoliy Atanasov1-0/+13
2009-08-30ldb: cosmetic changes in ldb_dnSimo Sorce1-193/+292
- remove trailing spaces and tabs - shorten some variable names for readability - try to break superlong lines for readability
2009-06-01when comp_num is zero, the case folded DN is always ""Andrew Tridgell1-8/+2
This fixes a bug where we would look at an uninitialised dn->linearized
2009-01-30Fix the mess with ldb includes.Simo Sorce1-1/+1
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.
2008-12-19Small cosmetic LDB patch regarding return values.Matthias Dieter Wallnöfer1-2/+2
It changes some "return 0" in "return LDB_SUCCESS"
2008-12-17s4:ldb: add infrastructure for extended dn handlersAndrew Bartlett1-58/+395
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-10-30Revert "Length comparison of the linearized version is not correct."Simo Sorce1-0/+3
This reverts commit 753af36a3e194f645ec0b68a033199035e71c909.
2008-10-29Length comparison of the linearized version is not correct.Simo Sorce1-3/+0
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-02s4:lib/ldb: fix stupid <SID=...> dn parsing bugsStefan Metzmacher1-2/+2
metze
2008-08-21Don't walk past the end of ldb values.Andrew Bartlett1-7/+16
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)
2007-12-21r25630: Allow "NULL" as memory context, for consistency with the rest of the ↵Jelmer Vernooij1-1/+1
code, which also does. (This used to be commit 083b606496308741958bb9fc6b3e50a582857677)
2007-10-10r25215: replace talloc_append_string() with talloc_strdup_append_buffer()Stefan Metzmacher1-14/+6
metze (This used to be commit 8f2db3c130ce85d38f805836a7df039822ede066)
2007-10-10r23798: updated old Temple Place FSF addresses to new URLAndrew Tridgell1-2/+1
(This used to be commit 40c0919aaa9c1b14bbaebb95ecce53eb0380fdbb)
2007-10-10r23795: more v2->v3 conversionAndrew Tridgell1-1/+1
(This used to be commit 84b468b2f8f2dffda89593f816e8bc6a8b6d42ac)
2007-10-10r22696: Make sure this is an ascii charSimo Sorce1-0/+12
spotted by Volker (This used to be commit e24812016f60f506f0df2cb5ba8c2c6987f7da40)
2007-10-10r22694: It seems that AIX 5.3 with XLC has difficulties with <ctype.h>. This isVolker Lendecke1-1/+1
an attempt to work around this: Maybe it helps if we include other stuff first. This raises a question however: Do we want the DN handling to be locale dependent? isalpha() can return different things depending on the current locale. (This used to be commit 75ba82dee052fa5f4141e66e1cb748101aa95d71)
2007-10-10r22681: Fix standalone ldb build when parent directory name != ldb.Jelmer Vernooij1-2/+1
(This used to be commit 1093875d59f1ea9b8bd82277d4f9d8366e584952)
2007-10-10r20952: when a component is changed we need to rebuild the linearized stringStefan Metzmacher1-0/+1
metze (This used to be commit beb816fb78ec4a7816680611af6619740e159424)
2007-10-10r20373: When adding a base to a "" DN, don't precede it with a comma (,)Andrew Bartlett1-2/+10
Andrew Bartlett (This used to be commit ef1ca30180b1b225579a8200b65a4853a135602f)
2007-10-10r20184: change ldb_attrib_handler into ldb_schema_attribute, which has a pointerStefan Metzmacher1-5/+5
to a ldb_schema_syntax struct. the default attribute handler is now registered dynamicly as "*" attribute, instead of having its own code path. ldb_schema_attribute's can be added to the ldb_schema given a ldb_schema_syntax struct or the syntax name we may also need to introduce a ldb_schema_matching_rule, and add a pointer to a default ldb_schema_matching_rule in the ldb_schema_syntax. metze (This used to be commit b97b8f5dcbce006f005e53ca79df3330e62f117b)
2007-10-10r20023: handle <SID=...> <WKGUID=...> dn's also in ldb_dn_new_fmt()Stefan Metzmacher1-0/+10
metze (This used to be commit 01e3a5080a38c93c4bbf249b03135314b7e0b3f1)
2007-10-10r19954: allow more special dn's:Stefan Metzmacher1-0/+10
this works now against w2k3: bin/ldbedit -U administrator%test -H ldap://w2k3-101/ -b "<GUID=44087590-dd95-435c-adc1-ec20a50807be>" -s base bin/ldbedit -U administrator%test -H ldap://w2k3-101/ -b "<SID=S-1-5-21-769185814-1958994947-1641909093-513>" -s base bin/ldbedit -U administrator%test -H ldap://w2k3-101/ -b "<WKGUID=AB8153B7768811D1ADED00C04FD8D5CD,DC=w2k3,dc=vmnet1,dc=vm,dc=base>" -s base and we should try to implement this in the server too... metze (This used to be commit 3c087c89707398d88799367240fe4e6f8b192bb4)
2007-10-10r19910: Make better use of our set of talloc utility functionsSimo Sorce1-5/+5
(This used to be commit b1197dbeebff062b8ea1e8466d436be82b0b61e0)
2007-10-10r19901: Fix a potential NULL dereferenceVolker Lendecke1-0/+3
(This used to be commit 75e6fb9654f10a076ed49b0582b40368e149d30a)
2007-10-10r19887: return "" string only if the dn is a valid oneSimo Sorce1-5/+9
(This used to be commit 056f90798f6d2cea1debc50f31fea3d740c4a837)
2007-10-10r19885: special dn's were not casefolded before rev 19831,Stefan Metzmacher1-13/+11
act like this again... also when we already have a casefoled value we should not call ldb_dn_casefold_internal() metze (This used to be commit cbf4eb16725992bfdfa5a334e0e5547e6df568e6)
2007-10-10r19871: simplify moreSimo Sorce1-17/+7
(This used to be commit e9ddb18c83518703f987bf141807639956612dbf)
2007-10-10r19870: Simplify codeSimo Sorce1-25/+11
(This used to be commit c1737f9a52d9e4d118f969a0953a458188143d0d)
2007-10-10r19869: fix memleaksSimo Sorce1-34/+121
(This used to be commit 3a662a2d985bf801284c5dc1123dec6705e6d092)
2007-10-10r19832: better prototypes for the linearization functions:Simo Sorce1-2/+2
- 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-10r19831: Big ldb_dn optimization and interfaces enhancement patchSimo Sorce1-587/+921
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-10r19719: don't use 'new' as var name samba3 doesn't like it...Stefan Metzmacher1-4/+4
metze (This used to be commit 7a4f46c1c9ec8119db46ffc57d77fcf13ca0c5a8)
2007-10-10r19531: Make struct ldb_dn opaque and local to ldb_dn.cSimo Sorce1-31/+88
(This used to be commit 889fb983ba1cf8a11424a8b3dc3a5ef76e780082)
2007-10-10r19361: added a commentAndrew Tridgell1-0/+3
(This used to be commit 1581babfb5a5bbbfc2706dbec9b37b03fe9a5af6)
2007-10-10r19289: fixed a memory leak in ldb_dn_string_compose()Andrew Tridgell1-2/+4
(This used to be commit 669aa1424c7a931f57856af0cd4a6f6f4a60b823)
2007-10-10r19196: merge from samba3:Stefan Metzmacher1-12/+15
pass always a mem_ctx to functions and a ldb_context where needed metze (This used to be commit 67a6a41ba3af840cd8226de73576a90ecf602caa)
2007-10-10r19188: merge from samba3:Stefan Metzmacher1-2/+3
fix compiler warnings metze (This used to be commit dc139d8715f58b27363266f1426da451907845eb)
2007-10-10r19113: fixed another checker warning.Andrew Tridgell1-0/+1
(This used to be commit d12550af01f8d4c135fbf6f429852c31570ec92b)
2007-10-10r19079: talloc_array can failVolker Lendecke1-0/+1
(This used to be commit 441ad8a45c390f807a6ec5f27d585aad54f3b210)
2007-10-10r19076: ldb_dn_copy_partial can failVolker Lendecke1-0/+1
(This used to be commit 78aa689a74941cd6873a91c429889a4c1d1a6432)
2007-10-10r19075: Fix a potential NULL dereferenceVolker Lendecke1-0/+4
(This used to be commit 84ae80b39bfa49fe7f9fa801d45a79bf04df8aff)