From 2be301db665de4440ef9959c808cebb2a33edefe Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Sat, 25 Aug 2007 10:13:51 +0000 Subject: [PATCH] improve URI DN containment check --- servers/slapd/back-meta/config.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/servers/slapd/back-meta/config.c b/servers/slapd/back-meta/config.c index 6cdfbc60fc..1c0b5f6727 100644 --- a/servers/slapd/back-meta/config.c +++ b/servers/slapd/back-meta/config.c @@ -111,13 +111,11 @@ meta_back_db_config( /* URI of server to query */ if ( strcasecmp( argv[ 0 ], "uri" ) == 0 ) { int i = mi->mi_ntargets; -#if 0 - int j; -#endif /* uncomment if uri MUST be a branch of suffix */ LDAPURLDesc *ludp, *tmpludp; struct berval dn; int rc; int c; + BackendDB *tmp_bd; metatarget_t *mt; @@ -282,26 +280,14 @@ meta_back_db_config( /* * uri MUST be a branch of suffix! */ -#if 0 /* too strict a constraint */ - if ( select_backend( &mt->mt_nsuffix, 0 ) != be ) { - Debug( LDAP_DEBUG_ANY, - "%s: line %d: of URI does not refer to current backend" - " in \"uri ://[:port]/\" line\n", - fname, lineno, 0 ); - return 1; - } -#else - /* - * uri MUST be a branch of a suffix! - */ - if ( select_backend( &mt->mt_nsuffix, 0 ) == NULL ) { + tmp_bd = select_backend( &mt->mt_nsuffix, 0 ); + if ( tmp_bd == NULL || tmp_bd->be_private != be->be_private ) + { Debug( LDAP_DEBUG_ANY, - "%s: line %d: of URI does not resolve to a backend" - " in \"uri ://[:port]/\" line\n", + "%s: line %d: of URI does not resolve to this database.\n", fname, lineno, 0 ); return 1; } -#endif /* subtree-exclude */ } else if ( strcasecmp( argv[ 0 ], "subtree-exclude" ) == 0 ) { -- 2.39.5