From: Ondřej Kuzník Date: Fri, 25 Aug 2017 15:08:27 +0000 (+0100) Subject: ITS#8637 Reject multiple chain URIs just like slapd.conf X-Git-Tag: OPENLDAP_REL_ENG_2_4_48~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fad18a70586a2b11adfb6397b42b5831e83a6939;p=thirdparty%2Fopenldap.git ITS#8637 Reject multiple chain URIs just like slapd.conf --- diff --git a/servers/slapd/back-ldap/chain.c b/servers/slapd/back-ldap/chain.c index e391ad9520..b1d01ff8b2 100644 --- a/servers/slapd/back-ldap/chain.c +++ b/servers/slapd/back-ldap/chain.c @@ -1364,6 +1364,19 @@ fail: li = ca->be->be_private; if ( at ) { + char **urls; + + urls = ldap_str2charray( at->a_vals[ 0 ].bv_val, ", \t" ); + if ( !urls || !urls[0] || urls[1] ) { + ldap_charray_free( urls ); + Debug( LDAP_DEBUG_ANY, "slapd-chain: " + "olcDbURI must contain exactly one url, got %s\n", + at->a_vals[ 0 ].bv_val, 0, 0 ); + rc = LDAP_CONSTRAINT_VIOLATION; + goto done; + } + ldap_charray_free( urls ); + li->li_uri = ch_strdup( at->a_vals[ 0 ].bv_val ); value_add_one( &li->li_bvuri, &at->a_vals[ 0 ] ); if ( avl_insert( &lc->lc_lai.lai_tree, (caddr_t)li,