diff --git a/libraries/libldap/getdn.c b/libraries/libldap/getdn.c index 3394ef0b53..11b436bdcf 100644 --- a/libraries/libldap/getdn.c +++ b/libraries/libldap/getdn.c @@ -650,8 +650,10 @@ ldap_bv2dn( struct berval *bv, LDAPDN **dn, unsigned flags ) if ( bv->bv_len == 0 ) { return LDAP_SUCCESS; + } - } else if ( str[ 0 ] == '\0' ) { + if( strlen( bv->bv_val ) != bv->bv_len ) { + /* value must have embedded NULs */ return LDAP_DECODING_ERROR; } @@ -879,7 +881,10 @@ ldap_bv2rdn( struct berval *bv, LDAPRDN **rdn, if ( bv->bv_len == 0 ) { return LDAP_SUCCESS; - } else if ( str[ 0 ] == '\0' ) { + } + + if( strlen( bv->bv_val ) != bv->bv_len ) { + /* value must have embedded NULs */ return LDAP_DECODING_ERROR; }