1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-06 08:23:50 +03:00

r6745: - escape spaces in binary ldap blobs

- expose the ldap filter string parsing outside of ldap.c
This commit is contained in:
Andrew Tridgell
2005-05-12 08:26:26 +00:00
committed by Gerald (Jerry) Carter
parent 992858e1b9
commit b644ff6fe1
2 changed files with 15 additions and 3 deletions

View File

@@ -150,7 +150,7 @@ static const char *ldap_binary_encode(TALLOC_CTX *mem_ctx, DATA_BLOB blob)
char *ret;
int len = blob.length;
for (i=0;i<blob.length;i++) {
if (!isprint(blob.data[i]) || blob.data[i] == '\\') {
if (!isprint(blob.data[i]) || strchr(" *()\\&|!", blob.data[i])) {
len += 2;
}
}
@@ -159,7 +159,7 @@ static const char *ldap_binary_encode(TALLOC_CTX *mem_ctx, DATA_BLOB blob)
len = 0;
for (i=0;i<blob.length;i++) {
if (!isprint(blob.data[i]) || blob.data[i] == '\\') {
if (!isprint(blob.data[i]) || strchr(" *()\\&|!", blob.data[i])) {
snprintf(ret+len, 4, "\\%02X", blob.data[i]);
len += 3;
} else {
@@ -318,7 +318,7 @@ static struct ldap_parse_tree *ldap_parse_filtercomp(TALLOC_CTX *mem_ctx,
<filter> ::= '(' <filtercomp> ')'
*/
static struct ldap_parse_tree *ldap_parse_filter(TALLOC_CTX *mem_ctx,
const char **s)
const char **s)
{
char *l, *s2;
const char *p, *p2;
@@ -1335,3 +1335,13 @@ BOOL ldap_parse_basic_url(TALLOC_CTX *mem_ctx, const char *url,
}
/*
externally callable version of filter string parsing - used in the
cldap server
*/
struct ldap_parse_tree *ldap_parse_filter_string(TALLOC_CTX *mem_ctx,
const char *s)
{
return ldap_parse_filter(mem_ctx, &s);
}