From 5dddb72503a618be6175746b9d99221ffb9708b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Tue, 15 Jun 2021 10:04:32 +0100 Subject: [PATCH] ITS#7215 Update datamorph/variant to drop workaround --- contrib/slapd-modules/datamorph/datamorph.c | 39 ++++++--------------- contrib/slapd-modules/variant/variant.c | 25 ++++--------- 2 files changed, 18 insertions(+), 46 deletions(-) diff --git a/contrib/slapd-modules/datamorph/datamorph.c b/contrib/slapd-modules/datamorph/datamorph.c index 95168a3eb4..164f81d23a 100644 --- a/contrib/slapd-modules/datamorph/datamorph.c +++ b/contrib/slapd-modules/datamorph/datamorph.c @@ -1399,9 +1399,6 @@ datamorph_set_attribute( ConfigArgs *ca ) } done: - if ( rc ) { - ca->reply.err = rc; - } return rc; } @@ -1432,8 +1429,7 @@ datamorph_set_size( ConfigArgs *ca ) snprintf( ca->cr_msg, sizeof(ca->cr_msg), "invalid size %d", ca->value_int ); Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg ); - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } info->ti_int.size = ca->value_int; @@ -1544,8 +1540,7 @@ datamorph_set_bounds( ConfigArgs *ca ) "failed to parse '%s' as integer", ca->value_bv.bv_val ); Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg ); - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } ch_free( ca->value_bv.bv_val ); @@ -1611,8 +1606,7 @@ datamorph_set_bounds( ConfigArgs *ca ) snprintf( ca->cr_msg, sizeof(ca->cr_msg), "datamorph_size has to be set first!" ); Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg ); - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } if ( info->ti_int.flags & DATAMORPH_FLAG_SIGNED ) { bound->i = signed_bound; @@ -1645,8 +1639,7 @@ datamorph_set_value( ConfigArgs *ca ) ber_len_t len; s = memchr( s, '}', ca->value_bv.bv_len ); if ( !s ) { - ca->reply.err = LDAP_UNDEFINED_TYPE; - return ca->reply.err; + return LDAP_UNDEFINED_TYPE; } s += 1; @@ -1675,14 +1668,12 @@ datamorph_set_index( ConfigArgs *ca ) } if ( ca->value_int < 0 || ca->value_int >= 256 ) { - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } else if ( !BER_BVISNULL( &from_db[ca->value_int] ) ) { snprintf( ca->cr_msg, sizeof(ca->cr_msg), "duplicate index %d", ca->value_int ); Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg ); - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } mapping->db_value = ca->value_int; from_db[ca->value_int] = mapping->wire_value; @@ -1718,8 +1709,7 @@ datamorph_add_transformation( ConfigArgs *ca ) snprintf( ca->cr_msg, sizeof(ca->cr_msg), "unknown transformation type '%s'", ca->argv[1] ); Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg ); - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } ca->value_string = strdup( ca->argv[2] ); @@ -1770,9 +1760,6 @@ done: rc = ldap_avl_insert( &info->ti_enum.to_db, mapping, transformation_mapping_cmp, ldap_avl_dup_error ); } - if ( rc ) { - ca->reply.err = rc; - } return rc; } @@ -1785,15 +1772,13 @@ datamorph_ldadd_info_cleanup( ConfigArgs *ca ) transformation_info *info = ca->ca_private; if ( ca->reply.err != LDAP_SUCCESS ) { - /* Not reached since cleanup is only called on success */ -fail: - ch_free( info ); return LDAP_SUCCESS; } if ( ldap_avl_insert( &ov->transformations, info, transformation_info_cmp, ldap_avl_dup_error ) ) { - goto fail; + ch_free( info ); + return LDAP_CONSTRAINT_VIOLATION; } return LDAP_SUCCESS; } @@ -1843,15 +1828,13 @@ datamorph_ldadd_mapping_cleanup( ConfigArgs *ca ) transformation_info *info = mapping->transformation; if ( ca->reply.err != LDAP_SUCCESS ) { - /* Not reached since cleanup is only called on success */ -fail: - datamorph_mapping_free( mapping ); return LDAP_SUCCESS; } if ( ldap_avl_insert( &info->ti_enum.to_db, mapping, transformation_mapping_cmp, ldap_avl_dup_error ) ) { - goto fail; + datamorph_mapping_free( mapping ); + return LDAP_CONSTRAINT_VIOLATION; } info->ti_enum.from_db[mapping->db_value] = mapping->wire_value; diff --git a/contrib/slapd-modules/variant/variant.c b/contrib/slapd-modules/variant/variant.c index edf4832843..b6f2ee8b2e 100644 --- a/contrib/slapd-modules/variant/variant.c +++ b/contrib/slapd-modules/variant/variant.c @@ -868,8 +868,7 @@ variant_set_dn( ConfigArgs *ca ) dnMatch( &diff, 0, NULL, NULL, &vei->dn, &vei2->dn ); if ( !diff ) { - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } } @@ -912,16 +911,14 @@ variant_set_regex( ConfigArgs *ca ) if ( !ber_bvcmp( &ca->value_bv, &vei2->dn ) ) { ch_free( vei ); ca->ca_private = NULL; - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } } vei->regex = ch_calloc( 1, sizeof(regex_t) ); if ( regcomp( vei->regex, vei->dn.bv_val, REG_EXTENDED ) ) { ch_free( vei->regex ); - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } return LDAP_SUCCESS; @@ -972,8 +969,7 @@ variant_set_alt_pattern( ConfigArgs *ca ) Debug( LDAP_DEBUG_ANY, "variant_set_alt_pattern: " "invalid replacement pattern supplied '%s'\n", ca->value_bv.bv_val ); - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } } @@ -1008,8 +1004,7 @@ variant_set_attribute( ConfigArgs *ca ) if ( *s == '{' ) { s = strchr( s, '}' ); if ( !s ) { - ca->reply.err = LDAP_UNDEFINED_TYPE; - return ca->reply.err; + return LDAP_UNDEFINED_TYPE; } s += 1; } @@ -1024,8 +1019,7 @@ variant_set_attribute( ConfigArgs *ca ) if ( vai->attr && vai->alternative && vai->attr->ad_type->sat_syntax != vai->alternative->ad_type->sat_syntax ) { - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } if ( ca->type == VARIANT_ATTR ) { @@ -1033,8 +1027,7 @@ variant_set_attribute( ConfigArgs *ca ) LDAP_SLIST_FOREACH( vai2, &vai->variant->attributes, next ) { if ( vai == vai2 ) continue; if ( vai->attr == vai2->attr ) { - ca->reply.err = LDAP_CONSTRAINT_VIOLATION; - return ca->reply.err; + return LDAP_CONSTRAINT_VIOLATION; } } } @@ -1091,8 +1084,6 @@ variant_add_alt_attr( ConfigArgs *ca ) done: if ( rc == LDAP_SUCCESS ) { LDAP_SLIST_INSERT_HEAD( &vei->attributes, vai, next ); - } else { - ca->reply.err = rc; } return rc; @@ -1137,8 +1128,6 @@ variant_add_alt_attr_regex( ConfigArgs *ca ) done: if ( rc == LDAP_SUCCESS ) { LDAP_SLIST_INSERT_HEAD( &vei->attributes, vai, next ); - } else { - ca->reply.err = rc; } return rc;