more attribute values mucking

This commit is contained in:
Pierangelo Masarati 2008-01-08 17:02:37 +00:00
parent e1e0370e8c
commit f63ec3f497
2 changed files with 11 additions and 0 deletions

View file

@ -835,6 +835,7 @@ monitor_subsys_database_modify(
BER_BVZERO( &a->a_vals[ k - 1 ] );
BER_BVZERO( &a->a_nvals[ k - 1 ] );
a->a_numvals--;
}
}
}
@ -860,9 +861,16 @@ monitor_subsys_database_modify(
BER_BVZERO( &a->a_vals[ k - 1 ] );
BER_BVZERO( &a->a_nvals[ k - 1 ] );
a->a_numvals--;
}
}
}
if ( a->a_vals == NULL ) {
assert( a->a_numvals == 0 );
attr_delete( &e->e_attrs, mi->mi_ad_restrictedOperation );
}
}
}

View file

@ -395,6 +395,7 @@ delete_values( Operation *op, Entry *e, Modification *mod, int *newlevel )
a->a_vals[ k - 1 ] = a->a_vals[ k ];
}
BER_BVZERO( &a->a_vals[ k - 1 ] );
a->a_numvals--;
break;
}
@ -409,6 +410,8 @@ delete_values( Operation *op, Entry *e, Modification *mod, int *newlevel )
/* if no values remain, delete the entire attribute */
if ( BER_BVISNULL( &a->a_vals[ 0 ] ) ) {
assert( a->a_numvals == 0 );
/* should already be zero */
*newlevel = 0;