Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
openldap
OpenLDAP
Commits
e559e61b
Commit
e559e61b
authored
Jan 18, 2005
by
Pierangelo Masarati
Browse files
consistently use BER_* macros
parent
71ea8bb2
Changes
1
Hide whitespace changes
Inline
Side-by-side
servers/slapd/schema_init.c
View file @
e559e61b
...
@@ -161,6 +161,7 @@ octetStringOrderingMatch(
...
@@ -161,6 +161,7 @@ octetStringOrderingMatch(
return
LDAP_SUCCESS
;
return
LDAP_SUCCESS
;
}
}
void
hashDigestify
(
hashDigestify
(
HASH_CONTEXT
*
HASHcontext
,
HASH_CONTEXT
*
HASHcontext
,
unsigned
char
*
HASHdigest
,
unsigned
char
*
HASHdigest
,
...
@@ -204,7 +205,7 @@ int octetStringIndexer(
...
@@ -204,7 +205,7 @@ int octetStringIndexer(
digest
.
bv_val
=
(
char
*
)
HASHdigest
;
digest
.
bv_val
=
(
char
*
)
HASHdigest
;
digest
.
bv_len
=
sizeof
(
HASHdigest
);
digest
.
bv_len
=
sizeof
(
HASHdigest
);
for
(
i
=
0
;
values
[
i
].
bv_val
!=
NULL
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
values
[
i
]
)
;
i
++
)
{
/* just count them */
/* just count them */
}
}
...
@@ -216,14 +217,13 @@ int octetStringIndexer(
...
@@ -216,14 +217,13 @@ int octetStringIndexer(
slen
=
syntax
->
ssyn_oidlen
;
slen
=
syntax
->
ssyn_oidlen
;
mlen
=
mr
->
smr_oidlen
;
mlen
=
mr
->
smr_oidlen
;
for
(
i
=
0
;
values
[
i
].
bv_val
!=
NULL
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
values
[
i
]
)
;
i
++
)
{
hashDigestify
(
&
HASHcontext
,
HASHdigest
,
prefix
,
0
,
hashDigestify
(
&
HASHcontext
,
HASHdigest
,
prefix
,
0
,
syntax
,
mr
,
(
unsigned
char
*
)
values
[
i
].
bv_val
,
values
[
i
].
bv_len
);
syntax
,
mr
,
(
unsigned
char
*
)
values
[
i
].
bv_val
,
values
[
i
].
bv_len
);
ber_dupbv_x
(
&
keys
[
i
],
&
digest
,
ctx
);
ber_dupbv_x
(
&
keys
[
i
],
&
digest
,
ctx
);
}
}
keys
[
i
].
bv_val
=
NULL
;
BER_BVZERO
(
&
keys
[
i
]
);
keys
[
i
].
bv_len
=
0
;
*
keysp
=
keys
;
*
keysp
=
keys
;
...
@@ -259,8 +259,7 @@ int octetStringFilter(
...
@@ -259,8 +259,7 @@ int octetStringFilter(
syntax
,
mr
,
(
unsigned
char
*
)
value
->
bv_val
,
value
->
bv_len
);
syntax
,
mr
,
(
unsigned
char
*
)
value
->
bv_val
,
value
->
bv_len
);
ber_dupbv_x
(
keys
,
&
digest
,
ctx
);
ber_dupbv_x
(
keys
,
&
digest
,
ctx
);
keys
[
1
].
bv_val
=
NULL
;
BER_BVZERO
(
&
keys
[
1
]
);
keys
[
1
].
bv_len
=
0
;
*
keysp
=
keys
;
*
keysp
=
keys
;
...
@@ -283,20 +282,20 @@ octetStringSubstringsMatch(
...
@@ -283,20 +282,20 @@ octetStringSubstringsMatch(
ber_len_t
inlen
=
0
;
ber_len_t
inlen
=
0
;
/* Add up asserted input length */
/* Add up asserted input length */
if
(
sub
->
sa_initial
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
sub
->
sa_initial
)
)
{
inlen
+=
sub
->
sa_initial
.
bv_len
;
inlen
+=
sub
->
sa_initial
.
bv_len
;
}
}
if
(
sub
->
sa_any
)
{
if
(
sub
->
sa_any
)
{
for
(
i
=
0
;
sub
->
sa_any
[
i
].
bv_val
!=
NULL
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
sub
->
sa_any
[
i
]
)
;
i
++
)
{
inlen
+=
sub
->
sa_any
[
i
].
bv_len
;
inlen
+=
sub
->
sa_any
[
i
].
bv_len
;
}
}
}
}
if
(
sub
->
sa_final
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
sub
->
sa_final
)
)
{
inlen
+=
sub
->
sa_final
.
bv_len
;
inlen
+=
sub
->
sa_final
.
bv_len
;
}
}
if
(
sub
->
sa_initial
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
sub
->
sa_initial
)
)
{
if
(
inlen
>
left
.
bv_len
)
{
if
(
inlen
>
left
.
bv_len
)
{
match
=
1
;
match
=
1
;
goto
done
;
goto
done
;
}
}
...
@@ -304,7 +303,7 @@ octetStringSubstringsMatch(
...
@@ -304,7 +303,7 @@ octetStringSubstringsMatch(
match
=
memcmp
(
sub
->
sa_initial
.
bv_val
,
left
.
bv_val
,
match
=
memcmp
(
sub
->
sa_initial
.
bv_val
,
left
.
bv_val
,
sub
->
sa_initial
.
bv_len
);
sub
->
sa_initial
.
bv_len
);
if
(
match
!=
0
)
{
if
(
match
!=
0
)
{
goto
done
;
goto
done
;
}
}
...
@@ -313,8 +312,8 @@ octetStringSubstringsMatch(
...
@@ -313,8 +312,8 @@ octetStringSubstringsMatch(
inlen
-=
sub
->
sa_initial
.
bv_len
;
inlen
-=
sub
->
sa_initial
.
bv_len
;
}
}
if
(
sub
->
sa_final
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
sub
->
sa_final
)
)
{
if
(
inlen
>
left
.
bv_len
)
{
if
(
inlen
>
left
.
bv_len
)
{
match
=
1
;
match
=
1
;
goto
done
;
goto
done
;
}
}
...
@@ -323,7 +322,7 @@ octetStringSubstringsMatch(
...
@@ -323,7 +322,7 @@ octetStringSubstringsMatch(
&
left
.
bv_val
[
left
.
bv_len
-
sub
->
sa_final
.
bv_len
],
&
left
.
bv_val
[
left
.
bv_len
-
sub
->
sa_final
.
bv_len
],
sub
->
sa_final
.
bv_len
);
sub
->
sa_final
.
bv_len
);
if
(
match
!=
0
)
{
if
(
match
!=
0
)
{
goto
done
;
goto
done
;
}
}
...
@@ -331,19 +330,19 @@ octetStringSubstringsMatch(
...
@@ -331,19 +330,19 @@ octetStringSubstringsMatch(
inlen
-=
sub
->
sa_final
.
bv_len
;
inlen
-=
sub
->
sa_final
.
bv_len
;
}
}
if
(
sub
->
sa_any
)
{
if
(
sub
->
sa_any
)
{
for
(
i
=
0
;
sub
->
sa_any
[
i
]
.
bv_val
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
sub
->
sa_any
[
i
]
)
;
i
++
)
{
ber_len_t
idx
;
ber_len_t
idx
;
char
*
p
;
char
*
p
;
retry:
retry:
if
(
inlen
>
left
.
bv_len
)
{
if
(
inlen
>
left
.
bv_len
)
{
/* not enough length */
/* not enough length */
match
=
1
;
match
=
1
;
goto
done
;
goto
done
;
}
}
if
(
sub
->
sa_any
[
i
]
.
bv_len
==
0
)
{
if
(
BER_BVISEMPTY
(
&
sub
->
sa_any
[
i
]
)
)
{
continue
;
continue
;
}
}
...
@@ -356,7 +355,7 @@ retry:
...
@@ -356,7 +355,7 @@ retry:
idx
=
p
-
left
.
bv_val
;
idx
=
p
-
left
.
bv_val
;
if
(
idx
>=
left
.
bv_len
)
{
if
(
idx
>=
left
.
bv_len
)
{
/* this shouldn't happen */
/* this shouldn't happen */
return
LDAP_OTHER
;
return
LDAP_OTHER
;
}
}
...
@@ -364,7 +363,7 @@ retry:
...
@@ -364,7 +363,7 @@ retry:
left
.
bv_val
=
p
;
left
.
bv_val
=
p
;
left
.
bv_len
-=
idx
;
left
.
bv_len
-=
idx
;
if
(
sub
->
sa_any
[
i
].
bv_len
>
left
.
bv_len
)
{
if
(
sub
->
sa_any
[
i
].
bv_len
>
left
.
bv_len
)
{
/* not enough left */
/* not enough left */
match
=
1
;
match
=
1
;
goto
done
;
goto
done
;
...
@@ -374,7 +373,7 @@ retry:
...
@@ -374,7 +373,7 @@ retry:
sub
->
sa_any
[
i
].
bv_val
,
sub
->
sa_any
[
i
].
bv_val
,
sub
->
sa_any
[
i
].
bv_len
);
sub
->
sa_any
[
i
].
bv_len
);
if
(
match
!=
0
)
{
if
(
match
!=
0
)
{
left
.
bv_val
++
;
left
.
bv_val
++
;
left
.
bv_len
--
;
left
.
bv_len
--
;
goto
retry
;
goto
retry
;
...
@@ -413,9 +412,9 @@ octetStringSubstringsIndexer(
...
@@ -413,9 +412,9 @@ octetStringSubstringsIndexer(
digest
.
bv_val
=
(
char
*
)
HASHdigest
;
digest
.
bv_val
=
(
char
*
)
HASHdigest
;
digest
.
bv_len
=
sizeof
(
HASHdigest
);
digest
.
bv_len
=
sizeof
(
HASHdigest
);
nkeys
=
0
;
nkeys
=
0
;
for
(
i
=
0
;
values
[
i
].
bv_val
!=
NULL
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
values
[
i
]
)
;
i
++
)
{
/* count number of indices to generate */
/* count number of indices to generate */
if
(
flags
&
SLAP_INDEX_SUBSTR_INITIAL
)
{
if
(
flags
&
SLAP_INDEX_SUBSTR_INITIAL
)
{
if
(
values
[
i
].
bv_len
>=
index_substr_if_maxlen
)
{
if
(
values
[
i
].
bv_len
>=
index_substr_if_maxlen
)
{
...
@@ -453,8 +452,8 @@ octetStringSubstringsIndexer(
...
@@ -453,8 +452,8 @@ octetStringSubstringsIndexer(
slen
=
syntax
->
ssyn_oidlen
;
slen
=
syntax
->
ssyn_oidlen
;
mlen
=
mr
->
smr_oidlen
;
mlen
=
mr
->
smr_oidlen
;
nkeys
=
0
;
nkeys
=
0
;
for
(
i
=
0
;
values
[
i
].
bv_val
!=
NULL
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
values
[
i
]
)
;
i
++
)
{
ber_len_t
j
,
max
;
ber_len_t
j
,
max
;
if
(
(
flags
&
SLAP_INDEX_SUBSTR_ANY
)
&&
if
(
(
flags
&
SLAP_INDEX_SUBSTR_ANY
)
&&
...
@@ -497,7 +496,7 @@ octetStringSubstringsIndexer(
...
@@ -497,7 +496,7 @@ octetStringSubstringsIndexer(
}
}
if
(
nkeys
>
0
)
{
if
(
nkeys
>
0
)
{
keys
[
nkeys
].
bv_val
=
NULL
;
BER_BVZERO
(
&
keys
[
nkeys
]
)
;
*
keysp
=
keys
;
*
keysp
=
keys
;
}
else
{
}
else
{
ch_free
(
keys
);
ch_free
(
keys
);
...
@@ -531,7 +530,7 @@ octetStringSubstringsFilter (
...
@@ -531,7 +530,7 @@ octetStringSubstringsFilter (
sa
=
(
SubstringsAssertion
*
)
assertedValue
;
sa
=
(
SubstringsAssertion
*
)
assertedValue
;
if
(
flags
&
SLAP_INDEX_SUBSTR_INITIAL
&&
if
(
flags
&
SLAP_INDEX_SUBSTR_INITIAL
&&
sa
->
sa_initial
.
bv_val
!=
NULL
&&
!
BER_BVISNULL
(
&
sa
->
sa_initial
)
&&
sa
->
sa_initial
.
bv_len
>=
index_substr_if_minlen
)
sa
->
sa_initial
.
bv_len
>=
index_substr_if_minlen
)
{
{
nkeys
++
;
nkeys
++
;
...
@@ -542,9 +541,9 @@ octetStringSubstringsFilter (
...
@@ -542,9 +541,9 @@ octetStringSubstringsFilter (
}
}
}
}
if
(
flags
&
SLAP_INDEX_SUBSTR_ANY
&&
sa
->
sa_any
!=
NULL
)
{
if
(
flags
&
SLAP_INDEX_SUBSTR_ANY
&&
sa
->
sa_any
!=
NULL
)
{
ber_len_t
i
;
ber_len_t
i
;
for
(
i
=
0
;
sa
->
sa_any
[
i
].
bv_val
!=
NULL
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
sa
->
sa_any
[
i
]
)
;
i
++
)
{
if
(
sa
->
sa_any
[
i
].
bv_len
>=
index_substr_any_len
)
{
if
(
sa
->
sa_any
[
i
].
bv_len
>=
index_substr_any_len
)
{
/* don't bother accounting with stepping */
/* don't bother accounting with stepping */
nkeys
+=
sa
->
sa_any
[
i
].
bv_len
-
nkeys
+=
sa
->
sa_any
[
i
].
bv_len
-
...
@@ -554,7 +553,7 @@ octetStringSubstringsFilter (
...
@@ -554,7 +553,7 @@ octetStringSubstringsFilter (
}
}
if
(
flags
&
SLAP_INDEX_SUBSTR_FINAL
&&
if
(
flags
&
SLAP_INDEX_SUBSTR_FINAL
&&
sa
->
sa_final
.
bv_val
!=
NULL
&&
!
BER_BVISNULL
(
&
sa
->
sa_final
)
&&
sa
->
sa_final
.
bv_len
>=
index_substr_if_minlen
)
sa
->
sa_final
.
bv_len
>=
index_substr_if_minlen
)
{
{
nkeys
++
;
nkeys
++
;
...
@@ -580,7 +579,7 @@ octetStringSubstringsFilter (
...
@@ -580,7 +579,7 @@ octetStringSubstringsFilter (
nkeys
=
0
;
nkeys
=
0
;
if
(
flags
&
SLAP_INDEX_SUBSTR_INITIAL
&&
if
(
flags
&
SLAP_INDEX_SUBSTR_INITIAL
&&
sa
->
sa_initial
.
bv_val
!=
NULL
&&
!
BER_BVISNULL
(
&
sa
->
sa_initial
)
&&
sa
->
sa_initial
.
bv_len
>=
index_substr_if_minlen
)
sa
->
sa_initial
.
bv_len
>=
index_substr_if_minlen
)
{
{
pre
=
SLAP_INDEX_SUBSTR_INITIAL_PREFIX
;
pre
=
SLAP_INDEX_SUBSTR_INITIAL_PREFIX
;
...
@@ -614,7 +613,7 @@ octetStringSubstringsFilter (
...
@@ -614,7 +613,7 @@ octetStringSubstringsFilter (
pre
=
SLAP_INDEX_SUBSTR_PREFIX
;
pre
=
SLAP_INDEX_SUBSTR_PREFIX
;
klen
=
index_substr_any_len
;
klen
=
index_substr_any_len
;
for
(
i
=
0
;
sa
->
sa_any
[
i
].
bv_val
!=
NULL
;
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
sa
->
sa_any
[
i
]
)
;
i
++
)
{
if
(
sa
->
sa_any
[
i
].
bv_len
<
index_substr_any_len
)
{
if
(
sa
->
sa_any
[
i
].
bv_len
<
index_substr_any_len
)
{
continue
;
continue
;
}
}
...
@@ -633,7 +632,7 @@ octetStringSubstringsFilter (
...
@@ -633,7 +632,7 @@ octetStringSubstringsFilter (
}
}
if
(
flags
&
SLAP_INDEX_SUBSTR_FINAL
&&
if
(
flags
&
SLAP_INDEX_SUBSTR_FINAL
&&
sa
->
sa_final
.
bv_val
!=
NULL
&&
!
BER_BVISNULL
(
&
sa
->
sa_final
)
&&
sa
->
sa_final
.
bv_len
>=
index_substr_if_minlen
)
sa
->
sa_final
.
bv_len
>=
index_substr_if_minlen
)
{
{
pre
=
SLAP_INDEX_SUBSTR_FINAL_PREFIX
;
pre
=
SLAP_INDEX_SUBSTR_FINAL_PREFIX
;
...
@@ -663,7 +662,7 @@ octetStringSubstringsFilter (
...
@@ -663,7 +662,7 @@ octetStringSubstringsFilter (
}
}
if
(
nkeys
>
0
)
{
if
(
nkeys
>
0
)
{
keys
[
nkeys
].
bv_val
=
NULL
;
BER_BVZERO
(
&
keys
[
nkeys
]
)
;
*
keysp
=
keys
;
*
keysp
=
keys
;
}
else
{
}
else
{
ch_free
(
keys
);
ch_free
(
keys
);
...
@@ -695,13 +694,13 @@ bitStringValidate(
...
@@ -695,13 +694,13 @@ bitStringValidate(
*/
*/
if
(
in
->
bv_val
[
0
]
!=
'\''
||
if
(
in
->
bv_val
[
0
]
!=
'\''
||
in
->
bv_val
[
in
->
bv_len
-
2
]
!=
'\''
||
in
->
bv_val
[
in
->
bv_len
-
2
]
!=
'\''
||
in
->
bv_val
[
in
->
bv_len
-
1
]
!=
'B'
)
in
->
bv_val
[
in
->
bv_len
-
1
]
!=
'B'
)
{
{
return
LDAP_INVALID_SYNTAX
;
return
LDAP_INVALID_SYNTAX
;
}
}
for
(
i
=
in
->
bv_len
-
3
;
i
>
0
;
i
--
)
{
for
(
i
=
in
->
bv_len
-
3
;
i
>
0
;
i
--
)
{
if
(
in
->
bv_val
[
i
]
!=
'0'
&&
in
->
bv_val
[
i
]
!=
'1'
)
{
if
(
in
->
bv_val
[
i
]
!=
'0'
&&
in
->
bv_val
[
i
]
!=
'1'
)
{
return
LDAP_INVALID_SYNTAX
;
return
LDAP_INVALID_SYNTAX
;
}
}
...
@@ -858,14 +857,14 @@ nameUIDValidate(
...
@@ -858,14 +857,14 @@ nameUIDValidate(
int
rc
;
int
rc
;
struct
berval
dn
,
uid
;
struct
berval
dn
,
uid
;
if
(
in
->
bv_len
==
0
)
return
LDAP_SUCCESS
;
if
(
BER_BVISEMPTY
(
in
)
)
return
LDAP_SUCCESS
;
ber_dupbv
(
&
dn
,
in
);
ber_dupbv
(
&
dn
,
in
);
if
(
!
dn
.
bv_val
)
return
LDAP_OTHER
;
if
(
!
dn
.
bv_val
)
return
LDAP_OTHER
;
/* if there's a "#", try bitStringValidate()... */
/* if there's a "#", try bitStringValidate()... */
uid
.
bv_val
=
strrchr
(
dn
.
bv_val
,
'#'
);
uid
.
bv_val
=
strrchr
(
dn
.
bv_val
,
'#'
);
if
(
uid
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
uid
)
)
{
uid
.
bv_val
++
;
uid
.
bv_val
++
;
uid
.
bv_len
=
dn
.
bv_len
-
(
uid
.
bv_val
-
dn
.
bv_val
);
uid
.
bv_len
=
dn
.
bv_len
-
(
uid
.
bv_val
-
dn
.
bv_val
);
...
@@ -897,7 +896,7 @@ nameUIDPretty(
...
@@ -897,7 +896,7 @@ nameUIDPretty(
Debug
(
LDAP_DEBUG_TRACE
,
">>> nameUIDPretty: <%s>
\n
"
,
val
->
bv_val
,
0
,
0
);
Debug
(
LDAP_DEBUG_TRACE
,
">>> nameUIDPretty: <%s>
\n
"
,
val
->
bv_val
,
0
,
0
);
if
(
val
->
bv_len
==
0
)
{
if
(
BER_BVISEMPTY
(
val
)
)
{
ber_dupbv_x
(
out
,
val
,
ctx
);
ber_dupbv_x
(
out
,
val
,
ctx
);
}
else
if
(
val
->
bv_len
>
SLAP_LDAPDN_MAXLEN
)
{
}
else
if
(
val
->
bv_len
>
SLAP_LDAPDN_MAXLEN
)
{
...
@@ -909,7 +908,7 @@ nameUIDPretty(
...
@@ -909,7 +908,7 @@ nameUIDPretty(
struct
berval
uidval
=
BER_BVNULL
;
struct
berval
uidval
=
BER_BVNULL
;
uidval
.
bv_val
=
strrchr
(
val
->
bv_val
,
'#'
);
uidval
.
bv_val
=
strrchr
(
val
->
bv_val
,
'#'
);
if
(
uidval
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
uidval
)
)
{
uidval
.
bv_val
++
;
uidval
.
bv_val
++
;
uidval
.
bv_len
=
val
->
bv_len
-
(
uidval
.
bv_val
-
val
->
bv_val
);
uidval
.
bv_len
=
val
->
bv_len
-
(
uidval
.
bv_val
-
val
->
bv_val
);
...
@@ -921,7 +920,7 @@ nameUIDPretty(
...
@@ -921,7 +920,7 @@ nameUIDPretty(
dnval
.
bv_val
[
dnval
.
bv_len
]
=
'\0'
;
dnval
.
bv_val
[
dnval
.
bv_len
]
=
'\0'
;
}
else
{
}
else
{
uidval
.
bv_val
=
NULL
;
BER_BVZERO
(
&
uidval
)
;
}
}
}
}
...
@@ -933,7 +932,7 @@ nameUIDPretty(
...
@@ -933,7 +932,7 @@ nameUIDPretty(
return
rc
;
return
rc
;
}
}
if
(
uidval
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
uidval
)
)
{
int
i
,
c
,
got1
;
int
i
,
c
,
got1
;
char
*
tmp
;
char
*
tmp
;
...
@@ -995,7 +994,7 @@ uniqueMemberNormalize(
...
@@ -995,7 +994,7 @@ uniqueMemberNormalize(
struct
berval
uid
=
BER_BVNULL
;
struct
berval
uid
=
BER_BVNULL
;
uid
.
bv_val
=
strrchr
(
out
.
bv_val
,
'#'
);
uid
.
bv_val
=
strrchr
(
out
.
bv_val
,
'#'
);
if
(
uid
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
uid
)
)
{
uid
.
bv_val
++
;
uid
.
bv_val
++
;
uid
.
bv_len
=
out
.
bv_len
-
(
uid
.
bv_val
-
out
.
bv_val
);
uid
.
bv_len
=
out
.
bv_len
-
(
uid
.
bv_val
-
out
.
bv_val
);
...
@@ -1004,7 +1003,7 @@ uniqueMemberNormalize(
...
@@ -1004,7 +1003,7 @@ uniqueMemberNormalize(
uid
.
bv_val
[
-
1
]
=
'\0'
;
uid
.
bv_val
[
-
1
]
=
'\0'
;
out
.
bv_len
-=
uid
.
bv_len
+
1
;
out
.
bv_len
-=
uid
.
bv_len
+
1
;
}
else
{
}
else
{
uid
.
bv_val
=
NULL
;
BER_BVZERO
(
&
uid
)
;
}
}
}
}
...
@@ -1015,7 +1014,7 @@ uniqueMemberNormalize(
...
@@ -1015,7 +1014,7 @@ uniqueMemberNormalize(
return
LDAP_INVALID_SYNTAX
;
return
LDAP_INVALID_SYNTAX
;
}
}
if
(
uid
.
bv_val
)
{
if
(
!
BER_BVISNULL
(
&
uid
)
)
{
char
*
tmp
;
char
*
tmp
;
tmp
=
ch_realloc
(
normalized
->
bv_val
,
tmp
=
ch_realloc
(
normalized
->
bv_val
,
...
@@ -1237,12 +1236,12 @@ UTF8StringValidate(
...
@@ -1237,12 +1236,12 @@ UTF8StringValidate(
int
len
;
int
len
;
unsigned
char
*
u
=
(
unsigned
char
*
)
in
->
bv_val
;
unsigned
char
*
u
=
(
unsigned
char
*
)
in
->
bv_val
;
if
(
in
->
bv_len
==
0
&&
syntax
==
slap_schema
.
si_syn_directoryString
)
{
if
(
BER_BVISEMPTY
(
in
)
&&
syntax
==
slap_schema
.
si_syn_directoryString
)
{
/* directory strings cannot be empty */
/* directory strings cannot be empty */
return
LDAP_INVALID_SYNTAX
;
return
LDAP_INVALID_SYNTAX
;
}
}
for
(
count
=
in
->
bv_len
;
count
>
0
;
count
-=
len
,
u
+=
len
)
{
for
(
count
=
in
->
bv_len
;
count
>
0
;
count
-=
len
,
u
+=
len
)
{
/* get the length indicated by the first byte */
/* get the length indicated by the first byte */
len
=
LDAP_UTF8_CHARLEN2
(
u
,
len
);
len
=
LDAP_UTF8_CHARLEN2
(
u
,
len
);
...
@@ -1302,12 +1301,11 @@ UTF8StringNormalize(
...
@@ -1302,12 +1301,11 @@ UTF8StringNormalize(
assert
(
SLAP_MR_IS_VALUE_OF_SYNTAX
(
use
));
assert
(
SLAP_MR_IS_VALUE_OF_SYNTAX
(
use
));
if
(
val
->
bv_val
==
NULL
)
{
if
(
BER_BVISNULL
(
val
)
)
{
/* assume we're dealing with a syntax (e.g., UTF8String)
/* assume we're dealing with a syntax (e.g., UTF8String)
* which allows empty strings
* which allows empty strings
*/
*/
normalized
->
bv_len
=
0
;
BER_BVZERO
(
normalized
);
normalized
->
bv_val
=
NULL
;
return
LDAP_SUCCESS
;
return
LDAP_SUCCESS
;
}
}
...
@@ -1325,8 +1323,8 @@ UTF8StringNormalize(
...
@@ -1325,8 +1323,8 @@ UTF8StringNormalize(
nvalue
.
bv_len
=
0
;
nvalue
.
bv_len
=
0
;
nvalue
.
bv_val
=
tmp
.
bv_val
;
nvalue
.
bv_val
=
tmp
.
bv_val
;
wasspace
=
1
;
/* trim leading spaces */
wasspace
=
1
;
/* trim leading spaces */
for
(
i
=
0
;
i
<
tmp
.
bv_len
;
i
++
)
{
for
(
i
=
0
;
i
<
tmp
.
bv_len
;
i
++
)
{
if
(
ASCII_SPACE
(
tmp
.
bv_val
[
i
]
))
{
if
(
ASCII_SPACE
(
tmp
.
bv_val
[
i
]
))
{
if
(
wasspace
++
==
0
)
{
if
(
wasspace
++
==
0
)
{
/* trim repeated spaces */
/* trim repeated spaces */
...
@@ -1338,7 +1336,7 @@ UTF8StringNormalize(
...
@@ -1338,7 +1336,7 @@ UTF8StringNormalize(
}
}
}
}
if
(
nvalue
.
bv_len
)
{
if
(
!
BER_BVISEMPTY
(
&
nvalue
)
)
{
if
(
wasspace
)
{
if
(
wasspace
)
{
/* last character was a space, trim it */
/* last character was a space, trim it */
--
nvalue
.
bv_len
;
--
nvalue
.
bv_len
;
...
@@ -1489,11 +1487,11 @@ approxIndexer(
...
@@ -1489,11 +1487,11 @@ approxIndexer(
struct
berval
*
newkeys
;
struct
berval
*
newkeys
;
BerVarray
keys
=
NULL
;
BerVarray
keys
=
NULL
;
for
(
j
=
0
;
values
[
j
].
bv_val
!=
NULL
;
j
++
)
{
for
(
j
=
0
;
!
BER_BVISNULL
(
&
values
[
j
]
)
;
j
++
)
{
struct
berval
val
=
BER_BVNULL
;
struct
berval
val
=
BER_BVNULL
;
/* Yes, this is necessary */
/* Yes, this is necessary */
UTF8bvnormalize
(
&
values
[
j
],
&
val
,
LDAP_UTF8_APPROX
,
NULL
);
UTF8bvnormalize
(
&
values
[
j
],
&
val
,
LDAP_UTF8_APPROX
,
NULL
);
assert
(
val
.
bv_val
!=
NULL
);
assert
(
!
BER_BVISNULL
(
&
val
)
);
/* Isolate how many words there are. There will be a key for each */
/* Isolate how many words there are. There will be a key for each */
for
(
wordcount
=
0
,
c
=
val
.
bv_val
;
*
c
;
c
++
)
{
for
(
wordcount
=
0
,
c
=
val
.
bv_val
;
*
c
;
c
++
)
{
...
@@ -1522,7 +1520,7 @@ approxIndexer(
...
@@ -1522,7 +1520,7 @@ approxIndexer(
ber_memfree
(
val
.
bv_val
);
ber_memfree
(
val
.
bv_val
);
}
}
keys
[
keycount
]
.
bv_val
=
NULL
;
BER_BVZERO
(
&
keys
[
keycount
]
)
;
*
keysp
=
keys
;
*
keysp
=
keys
;