mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
Fix prev commit, no recursion allowed in glue_sub_attach
This commit is contained in:
parent
84374348e5
commit
044b646445
@ -949,6 +949,7 @@ typedef struct glue_Addrec {
|
||||
|
||||
/* List of added subordinates */
|
||||
static glue_Addrec *ga_list;
|
||||
static int ga_adding;
|
||||
|
||||
static int
|
||||
glue_db_init(
|
||||
@ -1087,6 +1088,11 @@ glue_sub_attach( int online )
|
||||
glue_Addrec *ga, *gnext = NULL;
|
||||
int rc = 0;
|
||||
|
||||
if ( ga_adding )
|
||||
return 0;
|
||||
|
||||
ga_adding = 1;
|
||||
|
||||
/* For all the subordinate backends */
|
||||
for ( ga=ga_list; ga != NULL; ga = gnext ) {
|
||||
BackendDB *be;
|
||||
@ -1135,8 +1141,11 @@ glue_sub_attach( int online )
|
||||
/* allow this for now, assume a superior will
|
||||
* be added later
|
||||
*/
|
||||
if ( online )
|
||||
return 0;
|
||||
if ( online ) {
|
||||
rc = 0;
|
||||
gnext = ga_list;
|
||||
break;
|
||||
}
|
||||
rc = LDAP_NO_SUCH_OBJECT;
|
||||
}
|
||||
ch_free( ga );
|
||||
@ -1145,6 +1154,8 @@ glue_sub_attach( int online )
|
||||
|
||||
ga_list = gnext;
|
||||
|
||||
ga_adding = 0;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user