From 4c7787303cd358045156674f8d5d345d22cb1f51 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 2 Sep 2020 01:34:07 +0100 Subject: [PATCH] ITS#9121 fix for URLs with no filter --- servers/slapd/overlays/dynlist.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/servers/slapd/overlays/dynlist.c b/servers/slapd/overlays/dynlist.c index 5ed4097868..2dab753af0 100644 --- a/servers/slapd/overlays/dynlist.c +++ b/servers/slapd/overlays/dynlist.c @@ -1047,6 +1047,7 @@ dynlist_search1resp( Operation *op, SlapReply *rs ) dyn->dy_dli = ds->ds_dli; dyn->dy_name.bv_len = rs->sr_entry->e_nname.bv_len; if ( a ) { + Filter *f; /* parse and validate the URIs */ for (i=0; ia_numvals; i++) { if (ldap_url_parse( a->a_vals[i].bv_val, &ludp ) != LDAP_URL_SUCCESS ) @@ -1066,12 +1067,17 @@ dynlist_search1resp( Operation *op, SlapReply *rs ) /* cheat here, reuse fields */ ludp->lud_port = nbase.bv_len; if ( ludp->lud_filter && *ludp->lud_filter ) { - Filter *f = str2filter( ludp->lud_filter ); + f = str2filter( ludp->lud_filter ); if ( f == NULL ) goto skipit; ldap_memfree( ludp->lud_filter ); - ludp->lud_filter = (char *)f; + } else { + f = ch_malloc( sizeof( Filter )); + f->f_choice = SLAPD_FILTER_COMPUTED; + f->f_result = LDAP_COMPARE_TRUE; + f->f_next = NULL; } + ludp->lud_filter = (char *)f; dyn->dy_uris[j] = ludp; j++; } -- 2.47.3