From 3db0b40f39d05e2aeacd1fe0dbd69b77608aa34c Mon Sep 17 00:00:00 2001 From: Noriko Hosoi Date: Thu, 19 Jun 2014 17:28:39 -0700 Subject: [PATCH 227/228] Ticket #47820 - 1.2.11 branch: coverity errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: * Deadcode 1. Defect type: UNUSED_VALUE 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1894:returned_pointer – Pointer "slapdFrontendConfig" returned by "getFrontendConfig()" is never used. Solution: removed the line 1894. * Clang 1. Defect type: CLANG_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/valueset.c:1116:20:warning – Array access (via field 'va') results in a null pointer dereference 2. Defect type: CLANG_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/valueset.c:1090:26:warning – Array access (via field 'va') results in a null pointer dereference Solution: Added the code to check null dereference on vs->va on vs->va 3. Defect type: CLANG_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1896:6:warning – Value stored to 'maxthreads' during its initialization is never read Solution: removed the line 1896. 4. Defect type: CLANG_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1894:25:warning – Value stored to 'slapdFrontendConfig' during its initialization is never read Solution: Already addressed in Deadcode : 1. Defect type: UNUSED_VALUE 5. Defect type: CLANG_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1091:21:warning – Dereference of null pointer (loaded from variable 'nap') Solution: Added the code to check null dereference on nap and *nap. 6. Defect type: CLANG_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/back-ldbm/ldbm_search.c:455:25:warning – Value stored to 'virtual_list_view' is never read Solution: Porting bug (bz1109952; DS 47780). Moved the line to the right position. 7. Defect type: CLANG_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/back-ldbm/ldbm_add.c:1110:2:warning – Value stored to 'noabort' is never read Solution: Removed unnecessary assignment. Compiler Warnings 12. Defect type: COMPILER_WARNING 2. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1896:warning – unused variable 'maxthreads' Solution: already addressed 3. Defect type: CLANG_WARNING 13. Defect type: COMPILER_WARNING 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1895:warning – unused variable 'idletimeout' Solution: Removed the unused variable. 14. Defect type: COMPILER_WARNING ¶ 1. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1894:warning – unused variable 'slapdFrontendConfig' Solution: already addressed 1. Defect type: UNUSED_VALUE 15. Defect type: COMPILER_WARNING 2. 389-ds-base-1.2.11.15/ldap/servers/slapd/daemon.c:1788:warning – 'compute_idletimeout' defined but not used Solution: removed the unused function. https://fedorahosted.org/389/ticket/47820 Reviewed by rmeggins@redhat.com (Thanks, Rich!!) (cherry picked from commit ef7473dde11aa5c2b0041912b3f11099bb39ead8) --- ldap/servers/plugins/cos/cos_cache.c | 13 +++++--- ldap/servers/slapd/back-ldbm/ldbm_add.c | 1 - ldap/servers/slapd/back-ldbm/ldbm_search.c | 50 ++++++++++++++---------------- ldap/servers/slapd/daemon.c | 8 ++--- ldap/servers/slapd/valueset.c | 7 ++++- 5 files changed, 41 insertions(+), 38 deletions(-) diff --git a/ldap/servers/plugins/cos/cos_cache.c b/ldap/servers/plugins/cos/cos_cache.c index 1ff02f9..a89f5c5 100644 --- a/ldap/servers/plugins/cos/cos_cache.c +++ b/ldap/servers/plugins/cos/cos_cache.c @@ -942,7 +942,7 @@ cos_dn_defs_cb (Slapi_Entry* e, void *callback_data) parent = slapi_create_dn_string("%s", orig); if (!parent) { parent = orig; - LDAPDebug1Arg(LDAP_DEBUG_ANY, + slapi_log_error(SLAPI_LOG_FATAL, COS_PLUGIN_SUBSYSTEM, "cos_dn_defs_cb: " "failed to normalize parent dn %s. " "Adding the pre normalized dn.\n", @@ -959,18 +959,21 @@ cos_dn_defs_cb (Slapi_Entry* e, void *callback_data) } slapi_ch_free_string(&orig); } else { - LDAPDebug1Arg(LDAP_DEBUG_ANY, + slapi_log_error(SLAPI_LOG_FATAL, COS_PLUGIN_SUBSYSTEM, "cos_dn_defs_cb: " "failed to get parent dn of cos definition %s.\n", pDn->val); if (!pCosTemplateDn) { if (!pCosTargetTree) { - LDAPDebug0Args(LDAP_DEBUG_ANY, "cosTargetTree and cosTemplateDn are not set.\n"); + slapi_log_error(SLAPI_LOG_FATAL, COS_PLUGIN_SUBSYSTEM, + "cosTargetTree and cosTemplateDn are not set.\n"); } else { - LDAPDebug0Args(LDAP_DEBUG_ANY, "cosTemplateDn is not set.\n"); + slapi_log_error(SLAPI_LOG_FATAL, COS_PLUGIN_SUBSYSTEM, + "cosTemplateDn is not set.\n"); } } else if (!pCosTargetTree) { - LDAPDebug0Args(LDAP_DEBUG_ANY, "cosTargetTree is not set.\n"); + slapi_log_error(SLAPI_LOG_FATAL, COS_PLUGIN_SUBSYSTEM, + "cosTargetTree is not set.\n"); } } } diff --git a/ldap/servers/slapd/back-ldbm/ldbm_add.c b/ldap/servers/slapd/back-ldbm/ldbm_add.c index b129307..6361bc7 100644 --- a/ldap/servers/slapd/back-ldbm/ldbm_add.c +++ b/ldap/servers/slapd/back-ldbm/ldbm_add.c @@ -1107,7 +1107,6 @@ ldbm_back_add( Slapi_PBlock *pb ) } goto error_return; } - noabort = 1; rc= 0; goto common_return; diff --git a/ldap/servers/slapd/back-ldbm/ldbm_search.c b/ldap/servers/slapd/back-ldbm/ldbm_search.c index 626ba2e..46f7413 100644 --- a/ldap/servers/slapd/back-ldbm/ldbm_search.c +++ b/ldap/servers/slapd/back-ldbm/ldbm_search.c @@ -462,34 +462,32 @@ ldbm_back_search( Slapi_PBlock *pb ) } } else { - { - /* Access Control Check to see if the client is allowed to use the VLV Control. */ - Slapi_Entry *feature; - int rc; - char dn[128]; - char *dummyAttr = "dummy#attr"; - char *dummyAttrs[2] = {NULL, NULL}; - - dummyAttrs[0] = dummyAttr; - - /* This dn is normalized. */ - PR_snprintf(dn, sizeof (dn), "dn: oid=%s,cn=features,cn=config", LDAP_CONTROL_VLVREQUEST); - feature = slapi_str2entry(dn, 0); - rc = plugin_call_acl_plugin(pb, feature, dummyAttrs, NULL, SLAPI_ACL_READ, ACLPLUGIN_ACCESS_DEFAULT, NULL); - slapi_entry_free(feature); - if (rc != LDAP_SUCCESS) { - /* Client isn't allowed to do this. */ - return ldbm_back_search_cleanup(pb, li, sort_control, + /* Access Control Check to see if the client is allowed to use the VLV Control. */ + Slapi_Entry *feature; + int rc; + char dn[128]; + char *dummyAttr = "dummy#attr"; + char *dummyAttrs[2] = {NULL, NULL}; + + dummyAttrs[0] = dummyAttr; + + /* This dn is normalized. */ + PR_snprintf(dn, sizeof (dn), "dn: oid=%s,cn=features,cn=config", LDAP_CONTROL_VLVREQUEST); + feature = slapi_str2entry(dn, 0); + rc = plugin_call_acl_plugin(pb, feature, dummyAttrs, NULL, SLAPI_ACL_READ, ACLPLUGIN_ACCESS_DEFAULT, NULL); + slapi_entry_free(feature); + if (rc != LDAP_SUCCESS) { + /* Client isn't allowed to do this. */ + return ldbm_back_search_cleanup(pb, li, sort_control, rc, "VLV Control", SLAPI_FAIL_GENERAL, &vlv_request_control, NULL, candidates); - } } + /* + * Sorting must always be critical for VLV; Force it be so. + */ + is_sorting_critical= 1; + virtual_list_view= 1; } - /* - * Sorting must always be critical for VLV; Force it be so. - */ - is_sorting_critical= 1; - virtual_list_view= 1; } else { @@ -1407,7 +1405,7 @@ ldbm_back_next_search_entry_ext( Slapi_PBlock *pb, int use_extension ) back_txn txn = {NULL}; int pr_idx = -1; Slapi_Connection *conn; - Slapi_Operation *op; + Slapi_Operation *op = NULL; int reverse_list = 0; slapi_pblock_get( pb, SLAPI_SEARCH_TARGET_SDN, &basesdn ); @@ -1791,7 +1789,7 @@ ldbm_back_next_search_entry_ext( Slapi_PBlock *pb, int use_extension ) } bail: - if(rc){ + if(rc && op) { op->o_reverse_search_state = 0; } diff --git a/ldap/servers/slapd/daemon.c b/ldap/servers/slapd/daemon.c index ebd3e0f..9a362c7 100644 --- a/ldap/servers/slapd/daemon.c +++ b/ldap/servers/slapd/daemon.c @@ -1081,7 +1081,7 @@ void slapd_daemon( daemon_ports_t *ports ) if ( n_tcps != NULL ) { PRFileDesc **fdesp; PRNetAddr **nap = ports->n_listenaddr; - for (fdesp = n_tcps; fdesp && *fdesp; fdesp++, nap++) { + for (fdesp = n_tcps; fdesp && *fdesp && nap && *nap; fdesp++, nap++) { if ( PR_Listen( *fdesp, config_get_listen_backlog_size() ) == PR_FAILURE ) { PRErrorCode prerr = PR_GetError(); char addrbuf[ 256 ]; @@ -1779,6 +1779,7 @@ daemon_register_reslimits( void ) &idletimeout_reslimit_handle )); } +#if 0 /* NOT USED */ /* * Compute the idle timeout for the connection. * @@ -1826,7 +1827,7 @@ compute_idletimeout( slapdFrontendConfig_t *fecfg, Connection *conn ) return( idletimeout ); } - +#endif #ifdef _WIN32 static void @@ -1891,9 +1892,6 @@ handle_pr_read_ready(Connection_Table *ct, PRIntn num_poll) { Connection *c; time_t curtime = current_time(); - slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); - int idletimeout; - int maxthreads = config_get_maxthreadsperconn(); #if defined( XP_WIN32 ) int i; #endif diff --git a/ldap/servers/slapd/valueset.c b/ldap/servers/slapd/valueset.c index 960ad79..5c1ae36 100644 --- a/ldap/servers/slapd/valueset.c +++ b/ldap/servers/slapd/valueset.c @@ -1038,7 +1038,7 @@ slapi_valueset_add_attr_valuearray_ext(const Slapi_Attr *a, Slapi_ValueSet *vs, int passin = flags & SLAPI_VALUE_FLAG_PASSIN; int dupcheck = flags & SLAPI_VALUE_FLAG_DUPCHECK; - if (naddvals == 0) + if (naddvals <= 0) return (rc); need = vs->num + naddvals + 1; @@ -1072,6 +1072,11 @@ slapi_valueset_add_attr_valuearray_ext(const Slapi_Attr *a, Slapi_ValueSet *vs, } vs->max= allocate; } + if (NULL == vs->va) { + LDAPDebug1Arg(LDAP_DEBUG_ANY, "slapi_valueset_add_attr_valuearray_ext: " + "%s: valuearray is NULL\n", a->a_type); + return LDAP_OPERATIONS_ERROR; + } if ( (vs->num + naddvals > VALUESET_ARRAY_SORT_THRESHOLD || dupcheck ) && !vs->sorted ) { -- 1.8.1.4