From: Ondřej Kuzník Date: Tue, 15 Jun 2021 09:24:00 +0000 (+0100) Subject: ITS#9473 Fix cn=config memory leaks in slapo-variant X-Git-Tag: OPENLDAP_REL_ENG_2_6_0~187 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=006ca73d83e607d45b458df01bef50a3d01e7dc5;p=thirdparty%2Fopenldap.git ITS#9473 Fix cn=config memory leaks in slapo-variant --- diff --git a/contrib/slapd-modules/variant/variant.c b/contrib/slapd-modules/variant/variant.c index b6f2ee8b2e..42d1c76acd 100644 --- a/contrib/slapd-modules/variant/variant.c +++ b/contrib/slapd-modules/variant/variant.c @@ -918,6 +918,7 @@ variant_set_regex( ConfigArgs *ca ) vei->regex = ch_calloc( 1, sizeof(regex_t) ); if ( regcomp( vei->regex, vei->dn.bv_val, REG_EXTENDED ) ) { ch_free( vei->regex ); + ch_free( vei->dn.bv_val ); return LDAP_CONSTRAINT_VIOLATION; } @@ -1142,6 +1143,7 @@ variant_ldadd_cleanup( ConfigArgs *ca ) if ( ca->reply.err != LDAP_SUCCESS ) { assert( LDAP_SLIST_EMPTY(&vei->attributes) ); + ch_free( vei->dn.bv_val ); ch_free( vei ); return LDAP_SUCCESS; } @@ -1222,6 +1224,7 @@ variant_attr_ldadd_cleanup( ConfigArgs *ca ) variantEntry_info *vei = vai->variant; if ( ca->reply.err != LDAP_SUCCESS ) { + ch_free( vai->dn.bv_val ); ch_free( vai ); return LDAP_SUCCESS; } @@ -1372,6 +1375,8 @@ variant_db_destroy( BackendDB *be, ConfigReply *cr ) ch_free( vai ); } ber_memfree( vei->dn.bv_val ); + regfree( vei->regex ); + ch_free( vei->regex ); ch_free( vei ); } ch_free( ov );