- if( permissive && p == 0 ) {
- /* all new values match exist */
- ch_free( pmod.sm_values );
- if( pmod.sm_nvalues ) ch_free( pmod.sm_nvalues );
- return LDAP_SUCCESS;
+ if ( permissive ) {
+ if ( p == 0 ) {
+ /* all new values match exist */
+ ch_free( pmod.sm_values );
+ if ( pmod.sm_nvalues ) ch_free( pmod.sm_nvalues );
+ return LDAP_SUCCESS;
+ }
+
+ BER_BVZERO( &pmod.sm_values[p] );
+ if ( pmod.sm_nvalues ) {
+ BER_BVZERO( &pmod.sm_nvalues[p] );
+ }