X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foidm.c;h=3279336e8f819cac2a5f76fa6a59712776e8f00f;hb=dcd5c749144d327a75b031b68a1fca80407551ad;hp=2fe6cc552c7f5db2ebd3e94dbbf2aa62abebcc40;hpb=f0f7324e0e75efc909696f5a3a5a0dfabc271e44;p=openldap diff --git a/servers/slapd/oidm.c b/servers/slapd/oidm.c index 2fe6cc552c..3279336e8f 100644 --- a/servers/slapd/oidm.c +++ b/servers/slapd/oidm.c @@ -29,7 +29,7 @@ static LDAP_STAILQ_HEAD(OidMacroList, slap_oid_macro) om_list = LDAP_STAILQ_HEAD_INITIALIZER(om_list); -static OidMacro *om_sys_tail; +OidMacro *om_sys_tail; /* Replace an OID Macro invocation with its full numeric OID. * If the macro is used with "macroname:suffix" append ".suffix" @@ -149,6 +149,7 @@ parse_oidm( if ( !user ) { om->som_flags |= SLAP_OM_HARDCODE; prev = om_sys_tail; + om_sys_tail = om; } if ( prev ) { @@ -173,7 +174,7 @@ void oidm_unparse( BerVarray *res, OidMacro *start, OidMacro *end, int sys ) /* count the result size */ i = 0; for ( om=start; om; om=LDAP_STAILQ_NEXT(om, som_next)) { - if ( sys && !(om->som_flags & SLAP_OM_HARDCODE)) continue; + if ( sys && !(om->som_flags & SLAP_OM_HARDCODE)) break; for ( j=0; !BER_BVISNULL(&om->som_names[j]); j++ ); i += j; if ( om == end ) break; @@ -189,7 +190,7 @@ void oidm_unparse( BerVarray *res, OidMacro *start, OidMacro *end, int sys ) ibuf[0] = '\0'; } for ( i=0,om=start; om; om=LDAP_STAILQ_NEXT(om, som_next)) { - if ( sys && !(om->som_flags & SLAP_OM_HARDCODE)) continue; + if ( sys && !(om->som_flags & SLAP_OM_HARDCODE)) break; for ( j=0; !BER_BVISNULL(&om->som_names[j]); i++,j++ ) { if ( !sys ) { idx.bv_len = sprintf(idx.bv_val, "{%d}", i );