X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fat.c;h=59bdb98142a23cf8882be565ef94941c41e9198a;hb=86bd3651e1bc6129cf2bd4ba271f33207843aaff;hp=cc4e5ed7252a65f6afb0fbae03aa484715834c05;hpb=707082fcb7d4699c0739e34029e472b97ebd1f4b;p=openldap diff --git a/servers/slapd/at.c b/servers/slapd/at.c index cc4e5ed725..59bdb98142 100644 --- a/servers/slapd/at.c +++ b/servers/slapd/at.c @@ -247,6 +247,10 @@ at_destroy( void ) if ( slap_schema.si_at_undefined ) { ad_destroy(slap_schema.si_at_undefined->sat_ad); } + + if ( slap_schema.si_at_proxied ) { + ad_destroy(slap_schema.si_at_proxied->sat_ad); + } } int @@ -400,6 +404,18 @@ at_insert( } } + if ( sat->sat_oid ) { + slap_ad_undef_promote( sat->sat_oid, sat ); + } + + names = sat->sat_names; + if ( names ) { + while ( *names ) { + slap_ad_undef_promote( *names, sat ); + names++; + } + } + LDAP_STAILQ_INSERT_TAIL( &attr_list, sat, sat_next ); return 0; @@ -730,6 +746,11 @@ error_return:; ch_free( sat ); } + if ( oidm ) { + SLAP_FREE( at->at_oid ); + at->at_oid = oidm; + } + } else if ( rsat ) { *rsat = sat; }