diff --git a/CHANGES b/CHANGES index 0e80ec19aca130f5e943a35fb950dc9dd4d84b2d..cada3131593fdae231dd02dca0e8c859b2ff93e8 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,7 @@ OpenLDAP 2.4.11 Engineering Fixed liblber ber_get_next length decoding (ITS#5580) Added libldap assertion control (ITS#5560) Fixed libldap GnuTLS CRL result handling (ITS#5577) + Fixed slapd check for structural_class failures (ITS#5540) Fixed slapd crash with no listeners (ITS#5563) Fixed slapd sets memory leak (ITS#5557) Fixed slapd-sock, back-shell buffer count (ITS#5558) diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index 450cbbfc8ef84c7bf6f6e21b141151fa7a354c58..bd93b5c7b4797855ac12e30dd9e907376df1c4ec 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -5507,6 +5507,12 @@ config_build_entry( Operation *op, SlapReply *rs, CfEntryInfo *parent, oc_at = attr_find( e->e_attrs, slap_schema.si_ad_objectClass ); rc = structural_class(oc_at->a_vals, &oc, NULL, &text, c->cr_msg, sizeof(c->cr_msg), op ? op->o_tmpmemctx : NULL ); + if ( rc != LDAP_SUCCESS ) { + Debug( LDAP_DEBUG_ANY, + "config_build_entry: build \"%s\" failed: \"%s\"\n", + rdn->bv_val, text, 0); + return NULL; + } attr_merge_normalize_one(e, slap_schema.si_ad_structuralObjectClass, &oc->soc_cname, NULL ); if ( op ) { op->ora_e = e;