Don't crash on empty groups (ITS#5800)

This commit is contained in:
Ralf Haferkamp 2008-11-10 14:24:29 +00:00
parent 4d51be0c9b
commit 1d468467e6

View file

@ -191,26 +191,31 @@ static int write_group(nssov_group_cbp *cbp,Entry *entry)
i += a->a_numvals;
if ( b )
i += b->a_numvals;
if ( i )
if ( i ) {
members = cbp->op->o_tmpalloc( (i+1) * sizeof(struct berval), cbp->op->o_tmpmemctx );
if ( a ) {
for (i=0; i<a->a_numvals; i++) {
if (isvalidusername(&a->a_vals[i])) {
ber_dupbv_x(&members[j],&a->a_vals[i],cbp->op->o_tmpmemctx);
j++;
if ( a ) {
for (i=0; i<a->a_numvals; i++) {
if (isvalidusername(&a->a_vals[i])) {
ber_dupbv_x(&members[j],&a->a_vals[i],cbp->op->o_tmpmemctx);
j++;
}
}
}
}
a = b;
if ( a ) {
for (i=0; i<a->a_numvals; i++) {
if (nssov_dn2uid(cbp->op,cbp->ni,&a->a_nvals[i],&members[j]))
j++;
a = b;
if ( a ) {
for (i=0; i<a->a_numvals; i++) {
if (nssov_dn2uid(cbp->op,cbp->ni,&a->a_nvals[i],&members[j]))
j++;
}
}
nummembers = j;
BER_BVZERO(&members[j]);
} else {
members=NULL;
nummembers = 0;
}
nummembers = j;
BER_BVZERO(&members[j]);
} else {
members=NULL;
nummembers = 0;