X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foc.c;h=c2ba69013df2c18d05162c54a4d27a1fecd2466a;hb=f8fb4aca7668c722f41941be719203aa8c298e12;hp=1904a3bddbe6f6a7fde9a39572fe9cfe4ae85b6a;hpb=0e2af54a3ffdeebe3901370683be56fcc53023b0;p=openldap diff --git a/servers/slapd/oc.c b/servers/slapd/oc.c index 1904a3bddb..c2ba69013d 100644 --- a/servers/slapd/oc.c +++ b/servers/slapd/oc.c @@ -389,6 +389,19 @@ oc_add( } } + if ( !OID_LEADCHAR( oc->oc_oid[0] )) { + /* Expand OID macros */ + char *oid = oidm_find( oc->oc_oid ); + if ( !oid ) { + *err = oc->oc_oid; + return SLAP_SCHERR_OIDM; + } + if ( oid != oc->oc_oid ) { + ldap_memfree( oc->oc_oid ); + oc->oc_oid = oid; + } + } + soc = (ObjectClass *) ch_calloc( 1, sizeof(ObjectClass) ); AC_MEMCPY( &soc->soc_oclass, oc, sizeof(LDAPObjectClass) );