str = ch_malloc( strlen( map->domain ) +
strlen( map->realm ) + 2 );
sprintf( str, "%s %s", map->domain, map->realm );
- ber_str2bv( str, strlen( str ), 1, &bv );
- ch_free( str );
+ ber_str2bv( str, 0, 0, &bv );
rc = value_add_one( &c->rvalue_vals, &bv );
- if ( rc ) return rc;
- rc = value_add_one( &c->rvalue_nvals, &bv );
- if ( rc ) return rc;
+ if ( !rc )
+ rc = value_add_one( &c->rvalue_nvals, &bv );
+ ch_free( str );
+ if ( rc ) break;
}
break;
case REMOTE_AUTH_DN_ATTRIBUTE:
break;
case REMOTE_AUTH_DEFAULT_DOMAIN:
if ( ad->default_domain ) {
- ber_str2bv( ad->default_domain, 0, 1, &bv );
+ ber_str2bv( ad->default_domain, 0, 0, &bv );
value_add_one( &c->rvalue_vals, &bv );
}
break;
case REMOTE_AUTH_DEFAULT_REALM:
if ( ad->default_realm ) {
- ber_str2bv( ad->default_realm, 0, 1, &bv );
+ ber_str2bv( ad->default_realm, 0, 0, &bv );
value_add_one( &c->rvalue_vals, &bv );
}
break;
}
value_add_one( &c->rvalue_vals, &bv );
+ ch_free( bv.bv_val );
break;
case REMOTE_AUTH_TLS_PIN: {
ad_pin *pin = ad->pins;
ad_info *ai = ap->mappings;
while ( ai ) {
+ ad_info *next = ai->next;
+
if ( ai->domain ) ch_free( ai->domain );
if ( ai->realm ) ch_free( ai->realm );
- ai = ai->next;
+
+ ch_free( ai );
+ ai = next;
}
if ( ap->dn ) ch_free( ap->dn );
if ( ap->default_domain ) ch_free( ap->default_domain );
if ( ap->default_realm ) ch_free( ap->default_realm );
+ if ( ap->domain_attr ) ch_free( ap->domain_attr );
bindconf_free( &ap->ad_tls );