mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-11 23:03:21 -05:00
ITS#6670 partial fix - ignore member/memberof pointing to same entry
This commit is contained in:
parent
abf7f2efce
commit
089cf2d421
1 changed files with 24 additions and 0 deletions
|
|
@ -534,6 +534,10 @@ memberof_op_add( Operation *op, SlapReply *rs )
|
|||
for ( i = 0; !BER_BVISNULL( &a->a_nvals[ i ] ); i++ ) {
|
||||
Entry *e = NULL;
|
||||
|
||||
/* ITS#6670 Ignore member pointing to this entry */
|
||||
if ( dn_match( &a->a_nvals[i], &save_ndn ))
|
||||
continue;
|
||||
|
||||
rc = be_entry_get_rw( op, &a->a_nvals[ i ],
|
||||
NULL, NULL, 0, &e );
|
||||
if ( rc == LDAP_SUCCESS ) {
|
||||
|
|
@ -612,6 +616,10 @@ memberof_op_add( Operation *op, SlapReply *rs )
|
|||
send_ldap_result( op, rs );
|
||||
goto done;
|
||||
}
|
||||
/* ITS#6670 Ignore member pointing to this entry */
|
||||
if ( dn_match( &a->a_nvals[i], &save_ndn ))
|
||||
continue;
|
||||
|
||||
rc = be_entry_get_rw( op, &a->a_nvals[ i ],
|
||||
NULL, NULL, 0, &e );
|
||||
op->o_bd->bd_info = (BackendInfo *)on;
|
||||
|
|
@ -819,6 +827,10 @@ memberof_op_modify( Operation *op, SlapReply *rs )
|
|||
int rc;
|
||||
Entry *e;
|
||||
|
||||
/* ITS#6670 Ignore member pointing to this entry */
|
||||
if ( dn_match( &ml->sml_nvalues[i], &save_ndn ))
|
||||
continue;
|
||||
|
||||
if ( be_entry_get_rw( op, &ml->sml_nvalues[ i ],
|
||||
NULL, NULL, 0, &e ) == LDAP_SUCCESS )
|
||||
{
|
||||
|
|
@ -1030,6 +1042,10 @@ memberof_op_modify( Operation *op, SlapReply *rs )
|
|||
goto done2;
|
||||
}
|
||||
|
||||
/* ITS#6670 Ignore member pointing to this entry */
|
||||
if ( dn_match( &ml->sml_nvalues[i], &save_ndn ))
|
||||
continue;
|
||||
|
||||
rc = be_entry_get_rw( op, &ml->sml_nvalues[ i ],
|
||||
NULL, NULL, 0, &e );
|
||||
op->o_bd->bd_info = (BackendInfo *)on;
|
||||
|
|
@ -1189,6 +1205,10 @@ memberof_res_add( Operation *op, SlapReply *rs )
|
|||
|
||||
for ( i = 0; !BER_BVISNULL( &ma->a_nvals[ i ] ); i++ ) {
|
||||
|
||||
/* ITS#6670 Ignore member pointing to this entry */
|
||||
if ( dn_match( &ma->a_nvals[i], &op->o_req_ndn ))
|
||||
continue;
|
||||
|
||||
/* the modification is attempted
|
||||
* with the original identity */
|
||||
memberof_value_modify( op,
|
||||
|
|
@ -1206,6 +1226,10 @@ memberof_res_add( Operation *op, SlapReply *rs )
|
|||
a = attrs_find( a->a_next, mo->mo_ad_member ) )
|
||||
{
|
||||
for ( i = 0; !BER_BVISNULL( &a->a_nvals[ i ] ); i++ ) {
|
||||
/* ITS#6670 Ignore member pointing to this entry */
|
||||
if ( dn_match( &a->a_nvals[i], &op->o_req_ndn ))
|
||||
continue;
|
||||
|
||||
memberof_value_modify( op,
|
||||
&a->a_nvals[ i ],
|
||||
mo->mo_ad_memberof,
|
||||
|
|
|
|||
Loading…
Reference in a new issue