}
int *
-slap_parse_csn_sids( BerVarray csns, int numcsns )
+slap_parse_csn_sids( BerVarray csns, int numcsns, void *memctx )
{
int i, *ret;
char *p, *q;
- ret = ch_malloc( numcsns * sizeof(int) );
+ ret = slap_sl_malloc( numcsns * sizeof(int), memctx );
for ( i=0; i<numcsns; i++ ) {
ret[i] = slap_parse_csn_sid( &csns[i] );
}
else
stamp.bv_len = end - csn_str;
if ( ad ) {
- value_add_one( &cookie->ctxcsn, &stamp );
+ struct berval bv;
+ ber_dupbv_x( &bv, &stamp, memctx );
+ ber_bvarray_add_x( &cookie->ctxcsn, &bv, memctx );
cookie->numcsns++;
}
if ( cval ) {
next++;
}
if ( cookie->numcsns ) {
- cookie->sids = slap_parse_csn_sids( cookie->ctxcsn, cookie->numcsns );
+ cookie->sids = slap_parse_csn_sids( cookie->ctxcsn, cookie->numcsns,
+ memctx );
}
return 0;
}