Check for NULs in DNs.

This commit is contained in:
Kurt Zeilenga 2002-02-13 16:41:41 +00:00
parent 6913aadcdf
commit ee6d1a4d40
2 changed files with 21 additions and 8 deletions

View File

@ -648,8 +648,11 @@ ldap_bv2dn( struct berval *bv, LDAPDN **dn, unsigned flags )
return LDAP_PARAM_ERROR; return LDAP_PARAM_ERROR;
} }
if ( str[ 0 ] == '\0' ) { if ( bv->bv_len == 0 ) {
return LDAP_SUCCESS; return LDAP_SUCCESS;
} else if ( str[ 0 ] == '\0' ) {
return LDAP_DECODING_ERROR;
} }
p = str; p = str;
@ -873,8 +876,11 @@ ldap_bv2rdn( struct berval *bv, LDAPRDN **rdn,
return LDAP_PARAM_ERROR; return LDAP_PARAM_ERROR;
} }
if ( str[ 0 ] == '\0' ) { if ( bv->bv_len == 0 ) {
return LDAP_SUCCESS; return LDAP_SUCCESS;
} else if ( str[ 0 ] == '\0' ) {
return LDAP_DECODING_ERROR;
} }
p = str; p = str;

View File

@ -117,20 +117,21 @@ dnValidate(
} }
rc = ldap_bv2dn( in, &dn, LDAP_DN_FORMAT_LDAP ); rc = ldap_bv2dn( in, &dn, LDAP_DN_FORMAT_LDAP );
if ( rc != LDAP_SUCCESS ) {
return LDAP_INVALID_SYNTAX;
}
assert( strlen( in->bv_val ) == in->bv_len );
/* /*
* Schema-aware validate * Schema-aware validate
*/ */
rc = LDAPDN_validate( dn );
if ( rc == LDAP_SUCCESS ) { if ( rc == LDAP_SUCCESS ) {
rc = LDAPDN_validate( dn );
ldap_dnfree( dn ); ldap_dnfree( dn );
} }
if ( rc != LDAP_SUCCESS ) { return LDAP_INVALID_SYNTAX;
return( LDAP_INVALID_SYNTAX );
}
return( LDAP_SUCCESS );
} }
/* /*
@ -354,6 +355,8 @@ dnNormalize2(
return LDAP_INVALID_SYNTAX; return LDAP_INVALID_SYNTAX;
} }
assert( strlen( val->bv_val ) == val->bv_len );
/* /*
* Schema-aware rewrite * Schema-aware rewrite
*/ */
@ -425,6 +428,8 @@ dnPretty2(
return LDAP_INVALID_SYNTAX; return LDAP_INVALID_SYNTAX;
} }
assert( strlen( val->bv_val ) == val->bv_len );
/* /*
* Schema-aware rewrite * Schema-aware rewrite
*/ */
@ -485,6 +490,8 @@ dnPrettyNormal(
return LDAP_INVALID_SYNTAX; return LDAP_INVALID_SYNTAX;
} }
assert( strlen( val->bv_val ) == val->bv_len );
/* /*
* Schema-aware rewrite * Schema-aware rewrite
*/ */