From 393688418fbac6f1b69428052a206a5c45a0f752 Mon Sep 17 00:00:00 2001 From: Noriko Hosoi Date: Wed, 25 Feb 2015 11:38:50 -0800 Subject: [PATCH 36/40] Ticket #48048 - Fix coverity issues - 2015/2/24 Coverity defect 13036 - Explicit null dereferenced (FORWARD_NULL) Description: Modified slapi_filter_join_ex to accept NULL filter. modified: slapi_filter_join_ex in ldap/servers/slapd/filter.c --- ldap/servers/slapd/filter.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ldap/servers/slapd/filter.c b/ldap/servers/slapd/filter.c index 5fd0347..5bebefe 100644 --- a/ldap/servers/slapd/filter.c +++ b/ldap/servers/slapd/filter.c @@ -856,6 +856,30 @@ slapi_filter_join_ex( int ftype, struct slapi_filter *f1, struct slapi_filter *f struct slapi_filter *return_this; int insert = 0; + if ((NULL == f1) || (NULL == f2)) { + switch(ftype) { + case LDAP_FILTER_AND: + return NULL; + case LDAP_FILTER_OR: + return f1?f1:f2; + default: + if (NULL == f1) { + if (NULL == f2) { + return NULL; + } else { + add_this = f2; + } + } else { + add_this = f1; + } + fjoin = (struct slapi_filter *)slapi_ch_calloc(1, sizeof(struct slapi_filter)); + fjoin->f_choice = ftype; + fjoin->f_list = add_this; + filter_compute_hash(fjoin); + return fjoin; + } + } + if(!recurse_always) { /* try to optimise the filter join */ -- 1.9.3