From: Ondřej Kuzník Date: Tue, 15 Jun 2021 10:19:21 +0000 (+0100) Subject: ITS#9472 Fix cn=config memory leaks in slapo-datamorph X-Git-Tag: OPENLDAP_REL_ENG_2_6_0~186 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=681799da65a90dff6750efb9c0a9faf5433e2137;p=thirdparty%2Fopenldap.git ITS#9472 Fix cn=config memory leaks in slapo-datamorph --- diff --git a/contrib/slapd-modules/datamorph/datamorph.c b/contrib/slapd-modules/datamorph/datamorph.c index 164f81d23a..2f32c92399 100644 --- a/contrib/slapd-modules/datamorph/datamorph.c +++ b/contrib/slapd-modules/datamorph/datamorph.c @@ -1772,12 +1772,12 @@ datamorph_ldadd_info_cleanup( ConfigArgs *ca ) transformation_info *info = ca->ca_private; if ( ca->reply.err != LDAP_SUCCESS ) { + ch_free( info ); return LDAP_SUCCESS; } if ( ldap_avl_insert( &ov->transformations, info, transformation_info_cmp, ldap_avl_dup_error ) ) { - ch_free( info ); return LDAP_CONSTRAINT_VIOLATION; } return LDAP_SUCCESS; @@ -1828,12 +1828,14 @@ datamorph_ldadd_mapping_cleanup( ConfigArgs *ca ) transformation_info *info = mapping->transformation; if ( ca->reply.err != LDAP_SUCCESS ) { + if ( mapping ) { + datamorph_mapping_free( mapping ); + } return LDAP_SUCCESS; } if ( ldap_avl_insert( &info->ti_enum.to_db, mapping, transformation_mapping_cmp, ldap_avl_dup_error ) ) { - datamorph_mapping_free( mapping ); return LDAP_CONSTRAINT_VIOLATION; } info->ti_enum.from_db[mapping->db_value] = mapping->wire_value;