X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fat.c;h=27facafff50b885212e29f62ec22abf0c11f39a5;hb=014ba5ac80497d02b83514f30dabe3824e9facdc;hp=42c1b7a39653e708378f5ee157976c2a0abbfe21;hpb=acc32b9d9e731cf51d5f84ef392e9aa0c17e89de;p=openldap diff --git a/servers/slapd/at.c b/servers/slapd/at.c index 42c1b7a396..27facafff5 100644 --- a/servers/slapd/at.c +++ b/servers/slapd/at.c @@ -405,6 +405,11 @@ at_add( return SLAP_SCHERR_ATTR_BAD_USAGE; } + if ( supsat->sat_obsolete && !sat->sat_obsolete ) { + /* subtypes must be obsolete if super is */ + return SLAP_SCHERR_ATTR_BAD_SUP; + } + if ( sat->sat_flags & SLAP_AT_FINAL ) { /* cannot subtype a "final" attribute type */ return SLAP_SCHERR_ATTR_BAD_SUP; @@ -597,7 +602,8 @@ at_schema_info( Entry *e ) return -1; } - attr_merge( e, ad_attributeTypes, vals ); + if( attr_merge( e, ad_attributeTypes, vals ) ) + return -1; ldap_memfree( vals[0].bv_val ); } return 0;