mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
fix subtree rename integrity; curiously enough, tes023 only failed on 64 bit arch; probably because we'd need to double the stack of the slab on 64 bit archs...
This commit is contained in:
parent
9a00bbb35f
commit
7c9f63a60d
@ -414,12 +414,15 @@ refint_search_cb(
|
||||
if ( !BER_BVISEMPTY( &rq->newdn ) &&
|
||||
b[i].bv_len != rq->oldndn.bv_len )
|
||||
{
|
||||
struct berval newsub, newdn;
|
||||
struct berval newsub, newdn, olddn, oldndn;
|
||||
|
||||
/* if not first, save first as well */
|
||||
if ( first != -1 ) {
|
||||
ber_bvarray_add_x( &na->old_vals, &a->a_vals[first], op->o_tmpmemctx );
|
||||
ber_bvarray_add_x( &na->old_nvals, &a->a_nvals[first], op->o_tmpmemctx );
|
||||
|
||||
ber_dupbv_x( &olddn, &a->a_vals[first], op->o_tmpmemctx );
|
||||
ber_bvarray_add_x( &na->old_vals, &olddn, op->o_tmpmemctx );
|
||||
ber_dupbv_x( &oldndn, &a->a_nvals[first], op->o_tmpmemctx );
|
||||
ber_bvarray_add_x( &na->old_nvals, &oldndn, op->o_tmpmemctx );
|
||||
|
||||
newsub = a->a_vals[first];
|
||||
newsub.bv_len -= rq->olddn.bv_len + 1;
|
||||
@ -438,8 +441,10 @@ refint_search_cb(
|
||||
first = -1;
|
||||
}
|
||||
|
||||
ber_bvarray_add_x( &na->old_vals, &a->a_vals[i], op->o_tmpmemctx );
|
||||
ber_bvarray_add_x( &na->old_nvals, &a->a_nvals[i], op->o_tmpmemctx );
|
||||
ber_dupbv_x( &olddn, &a->a_vals[i], op->o_tmpmemctx );
|
||||
ber_bvarray_add_x( &na->old_vals, &olddn, op->o_tmpmemctx );
|
||||
ber_dupbv_x( &oldndn, &a->a_nvals[i], op->o_tmpmemctx );
|
||||
ber_bvarray_add_x( &na->old_nvals, &oldndn, op->o_tmpmemctx );
|
||||
|
||||
newsub = a->a_vals[i];
|
||||
newsub.bv_len -= rq->olddn.bv_len + 1;
|
||||
|
Loading…
Reference in New Issue
Block a user