From c0c089f4a41023db46c4a2daebf1d6b7605fce4c Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Sun, 17 Sep 2006 16:45:24 +0000 Subject: [PATCH] make sure we don't interfere with frontend's entry when the suffix is empty (test027) --- servers/slapd/back-bdb/monitor.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/servers/slapd/back-bdb/monitor.c b/servers/slapd/back-bdb/monitor.c index db5a23e544..63be159702 100644 --- a/servers/slapd/back-bdb/monitor.c +++ b/servers/slapd/back-bdb/monitor.c @@ -329,13 +329,24 @@ bdb_monitor_db_open( BackendDB *be ) ldap_bv2escaped_filter_value( &be->be_nsuffix[ 0 ], &suffix ); } - /* just look for the naming context */ - filter->bv_len = STRLENOF( "(namingContexts:distinguishedNameMatch:=" ) - + suffix.bv_len + STRLENOF( ")" ); - ptr = filter->bv_val = ch_malloc( filter->bv_len + 1 ); - ptr = lutil_strcopy( ptr, "(namingContexts:distinguishedNameMatch:=" ); - ptr = lutil_strncopy( ptr, suffix.bv_val, suffix.bv_len ); - ptr = lutil_strcopy( ptr, ")" ); + if ( BER_BVISEMPTY( &suffix ) ) { + /* frontend also has empty suffix, sigh! */ + filter->bv_len = STRLENOF( "(&(namingContexts:distinguishedNameMatch:=" ) + + suffix.bv_len + STRLENOF( ")(!(cn=frontend)))" ); + ptr = filter->bv_val = ch_malloc( filter->bv_len + 1 ); + ptr = lutil_strcopy( ptr, "(&(namingContexts:distinguishedNameMatch:=" ); + ptr = lutil_strncopy( ptr, suffix.bv_val, suffix.bv_len ); + ptr = lutil_strcopy( ptr, ")(!(cn=frontend)))" ); + + } else { + /* just look for the naming context */ + filter->bv_len = STRLENOF( "(namingContexts:distinguishedNameMatch:=" ) + + suffix.bv_len + STRLENOF( ")" ); + ptr = filter->bv_val = ch_malloc( filter->bv_len + 1 ); + ptr = lutil_strcopy( ptr, "(namingContexts:distinguishedNameMatch:=" ); + ptr = lutil_strncopy( ptr, suffix.bv_val, suffix.bv_len ); + ptr = lutil_strcopy( ptr, ")" ); + } ptr[ 0 ] = '\0'; assert( filter->bv_len == ptr - filter->bv_val ); -- 2.39.5