mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#6948 fix ITS#6837 patch
This commit is contained in:
parent
1b08936565
commit
6e0934d570
@ -4757,6 +4757,7 @@ check_name_index( CfEntryInfo *parent, ConfigType ce_type, Entry *e,
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Insert all superior classes of the given class */
|
||||
static int
|
||||
count_oc( ObjectClass *oc, ConfigOCs ***copp, int *nocs )
|
||||
{
|
||||
@ -4795,10 +4796,15 @@ count_oc( ObjectClass *oc, ConfigOCs ***copp, int *nocs )
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Find all superior classes of the given objectclasses,
|
||||
* return list in order of most-subordinate first.
|
||||
*
|
||||
* Special / auxiliary / Cft_Misc classes always take precedence.
|
||||
*/
|
||||
static ConfigOCs **
|
||||
count_ocs( Attribute *oc_at, int *nocs )
|
||||
{
|
||||
int i, j;
|
||||
int i, j, misc = -1;
|
||||
ConfigOCs **colst = NULL;
|
||||
|
||||
*nocs = 0;
|
||||
@ -4820,8 +4826,17 @@ count_ocs( Attribute *oc_at, int *nocs )
|
||||
ConfigOCs *tmp = colst[i];
|
||||
colst[i] = colst[j];
|
||||
colst[j] = tmp;
|
||||
if (tmp->co_type == Cft_Misc)
|
||||
misc = j;
|
||||
i++; j--;
|
||||
}
|
||||
/* Move misc class to front of list */
|
||||
if (misc > 0) {
|
||||
ConfigOCs *tmp = colst[misc];
|
||||
for (i=misc; i>0; i--)
|
||||
colst[i] = colst[i-1];
|
||||
colst[0] = tmp;
|
||||
}
|
||||
|
||||
return colst;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user