mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-04 22:20:28 -05:00
A more strict oidValidate
This commit is contained in:
parent
279d629c81
commit
537aab8a14
1 changed files with 11 additions and 18 deletions
|
|
@ -57,33 +57,26 @@ oidValidate(
|
|||
}
|
||||
|
||||
} else {
|
||||
int sep = 0;
|
||||
while( OID_LEADCHAR( val.bv_val[0] ) ) {
|
||||
if ( val.bv_len == 1 ) {
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
/* FIXME: the OID of 'dc' and other attributeTypes
|
||||
* starts with '0'! */
|
||||
if ( val.bv_val[0] == '0' && !OID_SEPARATOR( val.bv_val[1] ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
val.bv_val++;
|
||||
val.bv_len--;
|
||||
|
||||
while ( OID_LEADCHAR( val.bv_val[0] )) {
|
||||
val.bv_val++;
|
||||
val.bv_len--;
|
||||
|
||||
if ( val.bv_len == 0 ) {
|
||||
return LDAP_SUCCESS;
|
||||
if ( val.bv_val[-1] != '0' ) {
|
||||
while ( OID_LEADCHAR( val.bv_val[0] )) {
|
||||
val.bv_val++;
|
||||
val.bv_len--;
|
||||
}
|
||||
}
|
||||
|
||||
if( !OID_SEPARATOR( val.bv_val[0] )) {
|
||||
break;
|
||||
if( val.bv_len == 0 ) {
|
||||
if( sep == 0 ) break;
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
if( !OID_SEPARATOR( val.bv_val[0] )) break;
|
||||
|
||||
sep++;
|
||||
val.bv_val++;
|
||||
val.bv_len--;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue