From be55ce808787b13f4f1590c0979940f0e8d7553f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Fri, 25 Aug 2017 16:08:27 +0100 Subject: [PATCH] ITS#8637 Reject multiple chain URIs just like slapd.conf --- servers/slapd/back-ldap/chain.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/servers/slapd/back-ldap/chain.c b/servers/slapd/back-ldap/chain.c index 6537c74d73..89893a59e3 100644 --- a/servers/slapd/back-ldap/chain.c +++ b/servers/slapd/back-ldap/chain.c @@ -1365,6 +1365,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,