Monday, June 10, 2019

[389-commits] [389-ds-base] branch master updated: Ticket 50431 - Fix covscan warnings

This is an automated email from the git hooks/post-receive script.

mreynolds pushed a commit to branch master
in repository 389-ds-base.

The following commit(s) were added to refs/heads/master by this push:
new 4934b57 Ticket 50431 - Fix covscan warnings
4934b57 is described below

commit 4934b57afbe68cb7a2d792608ef37b34adc2308b
Author: Mark Reynolds <mreynolds@redhat.com>
AuthorDate: Wed Jun 5 14:09:52 2019 -0400

Ticket 50431 - Fix covscan warnings

Description: Most coverity errors happen when something fails.

https://pagure.io/389-ds-base/issue/50431

Reviewed by: firstyear & spichugi(Thanks!)
---
autogen.sh | 8 ++-
ldap/servers/plugins/acl/acl.c | 15 ++----
ldap/servers/plugins/acl/acleffectiverights.c | 12 +++--
ldap/servers/plugins/acl/acllist.c | 4 +-
ldap/servers/plugins/linkedattrs/linked_attrs.c | 4 +-
ldap/servers/plugins/memberof/memberof_config.c | 12 +++--
ldap/servers/plugins/posix-winsync/posix-winsync.c | 2 +-
ldap/servers/plugins/replication/cl5_api.c | 1 +
ldap/servers/plugins/replication/repl5_replica.c | 2 +-
.../plugins/replication/repl5_replica_config.c | 8 +--
ldap/servers/plugins/replication/urp.c | 1 +
ldap/servers/plugins/roles/roles_cache.c | 2 +
ldap/servers/plugins/views/views.c | 16 ++++--
ldap/servers/slapd/agtmmap.c | 2 +-
ldap/servers/slapd/back-ldbm/dblayer.c | 55 ++++++++++++---------
ldap/servers/slapd/back-ldbm/index.c | 9 ++--
ldap/servers/slapd/back-ldbm/ldbm_add.c | 3 +-
.../slapd/back-ldbm/ldbm_attrcrypt_config.c | 4 +-
ldap/servers/slapd/back-ldbm/ldbm_delete.c | 3 +-
ldap/servers/slapd/back-ldbm/ldif2ldbm.c | 4 +-
ldap/servers/slapd/back-ldbm/vlv_srch.c | 3 +-
ldap/servers/slapd/connection.c | 1 +
ldap/servers/slapd/dse.c | 7 +--
ldap/servers/slapd/entrywsi.c | 57 +++++++++++-----------
ldap/servers/slapd/main.c | 9 +---
ldap/servers/slapd/mapping_tree.c | 46 +++++++++--------
ldap/servers/slapd/modify.c | 6 ++-
ldap/servers/slapd/opshared.c | 3 +-
ldap/servers/slapd/plugin_internal_op.c | 3 +-
ldap/servers/slapd/plugin_syntax.c | 4 +-
ldap/servers/slapd/rdn.c | 5 +-
ldap/servers/slapd/sasl_map.c | 4 +-
ldap/servers/slapd/schema.c | 6 +--
ldap/servers/slapd/search.c | 7 +--
ldap/servers/slapd/tools/dbscan.c | 9 ++--
ldap/servers/slapd/tools/ldclt/ldapfct.c | 8 +--
ldap/servers/slapd/tools/ldclt/ldclt.c | 2 +-
ldap/servers/slapd/tools/ldif.c | 10 ++--
ldap/servers/slapd/tools/mmldif.c | 5 +-
ldap/servers/slapd/tools/pwenc.c | 1 +
ldap/servers/slapd/tools/rsearch/infadd.c | 2 +-
ldap/servers/slapd/tools/rsearch/rsearch.c | 5 +-
lib/ldaputil/certmap.c | 15 +++---
lib/libaccess/usrcache.cpp | 6 +--
.../389-console/src/lib/database/chaining.jsx | 2 +-
.../389-console/src/lib/database/suffix.jsx | 4 +-
src/cockpit/389-console/src/replication.js | 2 +-
src/lib389/lib389/agreement.py | 1 +
src/lib389/lib389/backend.py | 8 +--
src/lib389/lib389/cli_conf/backend.py | 2 +-
50 files changed, 229 insertions(+), 181 deletions(-)

diff --git a/autogen.sh b/autogen.sh
index 8bb628b..06a5fac 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -35,12 +35,16 @@ checkvers() {
vers="$1"; shift
needmaj="$1"; shift
needmin="$1"; shift
- needrev="$1"; shift
+ if [ "$#" != "0" ]; then
+ needrev="$1"; shift
+ fi
verslist=`echo $vers | tr '.' ' '`
set $verslist
maj=$1; shift
min=$1; shift
- rev=$1; shift
+ if [ "$#" != "0" ]; then
+ rev=$1; shift
+ fi
if [ "$maj" -gt "$needmaj" ] ; then return 0; fi
if [ "$maj" -lt "$needmaj" ] ; then return 1; fi
# if we got here, maj == needmaj
diff --git a/ldap/servers/plugins/acl/acl.c b/ldap/servers/plugins/acl/acl.c
index 6d105f4..5680de6 100644
--- a/ldap/servers/plugins/acl/acl.c
+++ b/ldap/servers/plugins/acl/acl.c
@@ -644,7 +644,8 @@ cleanup_and_ret:
if (aclpb)
aclpb->aclpb_curr_attrEval = NULL;

- print_access_control_summary("main", ret_val, clientDn, aclpb, right,
+ print_access_control_summary("main", ret_val, clientDn, aclpb,
+ (right ? right : "NULL"),
(attr ? attr : "NULL"), n_edn,
&decision_reason);
TNF_PROBE_0_DEBUG(acl_cleanup_end, "ACL", "");
@@ -2590,12 +2591,9 @@ acl__resource_match_aci(Acl_PBlock *aclpb, aci_t *aci, int skip_attrEval, int *a
* that applies to the current attribute.
* Then the (attribute,value) pair being added/deleted better
* match that filter.
- *
- *
*/
-
Targetattrfilter **attrFilterArray = NULL;
- Targetattrfilter *attrFilter;
+ Targetattrfilter *attrFilter = NULL;
int found = 0;

if ((aclpb->aclpb_access & ACLPB_SLAPI_ACL_WRITE_ADD) &&
@@ -2606,15 +2604,13 @@ acl__resource_match_aci(Acl_PBlock *aclpb, aci_t *aci, int skip_attrEval, int *a
attrFilterArray = aci->targetAttrDelFilters;
}

-
/*
* Scan this filter list for an applicable filter.
*/
-
found = 0;
num_attrs = 0;

- while (attrFilterArray[num_attrs] && !found) {
+ while (attrFilterArray && attrFilterArray[num_attrs] && !found) {
attrFilter = attrFilterArray[num_attrs];

/* If this filter applies to the attribute, stop. */
@@ -2630,8 +2626,7 @@ acl__resource_match_aci(Acl_PBlock *aclpb, aci_t *aci, int skip_attrEval, int *a
* Here, if found an applicable filter, then apply the filter to the
* (attr,val) pair.
* Otherwise, ignore the targetattrfilters.
- */
-
+ */
if (found) {

if (acl__make_filter_test_entry(&aclpb->aclpb_filter_test_entry,
diff --git a/ldap/servers/plugins/acl/acleffectiverights.c b/ldap/servers/plugins/acl/acleffectiverights.c
index 8a0cb91..5dd46a0 100644
--- a/ldap/servers/plugins/acl/acleffectiverights.c
+++ b/ldap/servers/plugins/acl/acleffectiverights.c
@@ -869,14 +869,14 @@ _ger_generate_template_entry(
if (dntype) {
siz += strlen(dntype) + 30 + strlen(object) + strlen(dn);
} else {
- siz += strlen(attrs[0]) + 30 + strlen(object) + strlen(dn);
+ siz += strlen(attrs[0] ? attrs[0] : "") + 30 + strlen(object) + strlen(dn);
}
} else {
/* dn: <attr>=<template_name>\n\0 */
if (dntype) {
siz += strlen(dntype) + 30 + strlen(object);
} else {
- siz += strlen(attrs[0]) + 30 + strlen(object);
+ siz += strlen(attrs[0] ? attrs[0] : "") + 30 + strlen(object);
}
}
templateentry = (char *)slapi_ch_malloc(siz);
@@ -1030,7 +1030,9 @@ bailout:
* slapi_pblock_set() will free any previous data, and
* pblock_done() will free SLAPI_PB_RESULT_TEXT.
*/
- slapi_pblock_set(pb, SLAPI_PB_RESULT_TEXT, gerstr);
+ if (gerstr) {
+ slapi_pblock_set(pb, SLAPI_PB_RESULT_TEXT, gerstr);
+ }

if (!iscritical) {
/*
@@ -1040,7 +1042,7 @@ bailout:
rc = LDAP_SUCCESS;
}

- slapi_ch_free((void **)&subjectndn);
- slapi_ch_free((void **)&gerstr);
+ slapi_ch_free_string(&subjectndn);
+ slapi_ch_free_string(&gerstr);
return rc;
}
diff --git a/ldap/servers/plugins/acl/acllist.c b/ldap/servers/plugins/acl/acllist.c
index 79786b7..e80c567 100644
--- a/ldap/servers/plugins/acl/acllist.c
+++ b/ldap/servers/plugins/acl/acllist.c
@@ -255,7 +255,9 @@ __acllist_add_aci(aci_t *aci)
t_aci = t_aci->aci_next;

/* Now add the new one to the end of the list */
- t_aci->aci_next = aci;
+ if (t_aci) {
+ t_aci->aci_next = aci;
+ }

slapi_log_err(SLAPI_LOG_ACL, plugin_name, "__acllist_add_aci - Added the ACL:%s to existing container:[%d]%s\n",
aci->aclName, head->acic_index, slapi_sdn_get_ndn(head->acic_sdn));
diff --git a/ldap/servers/plugins/linkedattrs/linked_attrs.c b/ldap/servers/plugins/linkedattrs/linked_attrs.c
index f6eee19..4f9fb10 100644
--- a/ldap/servers/plugins/linkedattrs/linked_attrs.c
+++ b/ldap/servers/plugins/linkedattrs/linked_attrs.c
@@ -1256,7 +1256,9 @@ linked_attrs_del_backpointers(Slapi_PBlock *pb, char *linkdn, struct configEntry

slapi_pblock_get(pb, SLAPI_ENTRY_PRE_OP, &pre_e);
slapi_entry_attr_find(pre_e, config->linktype, &pre_attr);
- slapi_attr_get_valueset(pre_attr, &vals);
+ if (pre_attr) {
+ slapi_attr_get_valueset(pre_attr, &vals);
+ }
} else {
vals = slapi_valueset_new();
slapi_valueset_set_from_smod(vals, smod);
diff --git a/ldap/servers/plugins/memberof/memberof_config.c b/ldap/servers/plugins/memberof/memberof_config.c
index 89fd012..124217e 100644
--- a/ldap/servers/plugins/memberof/memberof_config.c
+++ b/ldap/servers/plugins/memberof/memberof_config.c
@@ -550,13 +550,17 @@ memberof_apply_config(Slapi_PBlock *pb __attribute__((unused)),
}

/* Build the new list */
- for (i = 0; theConfig.group_slapiattrs && theConfig.groupattrs && theConfig.groupattrs[i]; i++) {
+ for (i = 0; theConfig.group_slapiattrs && theConfig.group_slapiattrs[i] &&
+ theConfig.groupattrs && theConfig.groupattrs[i]; i++)
+ {
theConfig.group_slapiattrs[i] = slapi_attr_new();
slapi_attr_init(theConfig.group_slapiattrs[i], theConfig.groupattrs[i]);
}

/* Terminate the list. */
- theConfig.group_slapiattrs[i] = NULL;
+ if (theConfig.group_slapiattrs) {
+ theConfig.group_slapiattrs[i] = NULL;
+ }

/* The filter is based off of the groupattr, so we update it here too. */
slapi_filter_free(theConfig.group_filter, 1);
@@ -736,7 +740,9 @@ memberof_copy_config(MemberOfConfig *dest, MemberOfConfig *src)
}

/* Terminate the array. */
- dest->group_slapiattrs[i] = NULL;
+ if (dest->group_slapiattrs) {
+ dest->group_slapiattrs[i] = NULL;
+ }
}

if (src->memberof_attr) {
diff --git a/ldap/servers/plugins/posix-winsync/posix-winsync.c b/ldap/servers/plugins/posix-winsync/posix-winsync.c
index 8e5ca4f..c56e55f 100644
--- a/ldap/servers/plugins/posix-winsync/posix-winsync.c
+++ b/ldap/servers/plugins/posix-winsync/posix-winsync.c
@@ -1114,7 +1114,7 @@ posix_winsync_pre_ds_mod_group_cb(void *cbdata __attribute__((unused)),

slapi_value_init_string(voc, "posixGroup");
slapi_entry_attr_find(ds_entry, "objectClass", &oc_attr);
- if (slapi_attr_value_find(oc_attr, slapi_value_get_berval(voc)) != 0) {
+ if (oc_attr && slapi_attr_value_find(oc_attr, slapi_value_get_berval(voc)) != 0) {
Slapi_ValueSet *oc_vs = NULL;
Slapi_Value *oc_nv = slapi_value_new();

diff --git a/ldap/servers/plugins/replication/cl5_api.c b/ldap/servers/plugins/replication/cl5_api.c
index c035db2..6b5b28b 100644
--- a/ldap/servers/plugins/replication/cl5_api.c
+++ b/ldap/servers/plugins/replication/cl5_api.c
@@ -2749,6 +2749,7 @@ _cl5UpgradeMajor(char *fromVersion, char *toVersion)
if (rc != CL5_SUCCESS) {
slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name_cl,
"_cl5UpgradeMajor - Failed to open the db env\n");
+ s_cl5Desc.dbOpenMode = backup;
return rc;
}
s_cl5Desc.dbOpenMode = backup;
diff --git a/ldap/servers/plugins/replication/repl5_replica.c b/ldap/servers/plugins/replication/repl5_replica.c
index b3d6198..6a5363e 100644
--- a/ldap/servers/plugins/replication/repl5_replica.c
+++ b/ldap/servers/plugins/replication/repl5_replica.c
@@ -2317,7 +2317,7 @@ replica_check_for_tasks(time_t when __attribute__((unused)), void *arg)
"missing original task flag. Aborting abort task!\n",
clean_vals[i]);
replica_delete_task_config(e, (char *)type_replicaAbortCleanRUV, orig_val);
- goto done;
+ goto done2;
}

if (!is_cleaned_rid(rid)) {
diff --git a/ldap/servers/plugins/replication/repl5_replica_config.c b/ldap/servers/plugins/replication/repl5_replica_config.c
index 02b645f..7649aa1 100644
--- a/ldap/servers/plugins/replication/repl5_replica_config.c
+++ b/ldap/servers/plugins/replication/repl5_replica_config.c
@@ -223,6 +223,7 @@ replica_config_add(Slapi_PBlock *pb __attribute__((unused)),
}
slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name, "replica_config_add - "MSG_NOREPLICANORMRDN);
slapi_rdn_free(&replicardn);
+ slapi_ch_free_string(&replica_root);
*returncode = LDAP_UNWILLING_TO_PERFORM;
return SLAPI_DSE_CALLBACK_ERROR;
} else {
@@ -232,6 +233,7 @@ replica_config_add(Slapi_PBlock *pb __attribute__((unused)),
}
slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name,"replica_config_add - "MSG_CNREPLICA, nrdn, REPLICA_RDN);
slapi_rdn_free(&replicardn);
+ slapi_ch_free_string(&replica_root);
*returncode = LDAP_UNWILLING_TO_PERFORM;
return SLAPI_DSE_CALLBACK_ERROR;
}
@@ -242,6 +244,7 @@ replica_config_add(Slapi_PBlock *pb __attribute__((unused)),
strcpy(errortext, MSG_NOREPLICARDN);
}
slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name, "replica_config_add - "MSG_NOREPLICARDN);
+ slapi_ch_free_string(&replica_root);
*returncode = LDAP_UNWILLING_TO_PERFORM;
return SLAPI_DSE_CALLBACK_ERROR;
}
@@ -287,7 +290,7 @@ done:

PR_Unlock(s_configLock);
/* slapi_ch_free accepts NULL pointer */
- slapi_ch_free((void **)&replica_root);
+ slapi_ch_free_string(&replica_root);

if (*returncode != LDAP_SUCCESS) {
if (mtnode_ext->replica)
@@ -2083,7 +2086,6 @@ check_replicas_are_done_cleaning(cleanruv_data *data)
while (not_all_cleaned && !is_task_aborted(data->rid) && !slapi_is_shutting_down()) {
agmt_obj = agmtlist_get_first_agreement_for_replica(data->replica);
if (agmt_obj == NULL) {
- not_all_cleaned = 0;
break;
}
while (agmt_obj && !slapi_is_shutting_down()) {
@@ -2196,7 +2198,6 @@ check_replicas_are_done_aborting(cleanruv_data *data)
while (not_all_aborted && !slapi_is_shutting_down()) {
agmt_obj = agmtlist_get_first_agreement_for_replica(data->replica);
if (agmt_obj == NULL) {
- not_all_aborted = 0;
break;
}
while (agmt_obj && !slapi_is_shutting_down()) {
@@ -2803,6 +2804,7 @@ delete_cleaned_rid_config(cleanruv_data *clean_data)
cleanruv_log(clean_data->task, clean_data->rid, CLEANALLRUV_ID, SLAPI_LOG_ERR,
"delete_cleaned_rid_config - Failed to remove task data from (%s) error (%d), rid (%d)",
edn, rc, clean_data->rid);
+ slapi_ch_array_free(attr_val);
goto bail;
}
}
diff --git a/ldap/servers/plugins/replication/urp.c b/ldap/servers/plugins/replication/urp.c
index 37fe773..b134409 100644
--- a/ldap/servers/plugins/replication/urp.c
+++ b/ldap/servers/plugins/replication/urp.c
@@ -1602,6 +1602,7 @@ urp_find_tombstone_for_glue (Slapi_PBlock *pb, char *sessionid, const Slapi_Entr
for (int i = 0; entries && (entries[i] != NULL); i++) {
char *tombstone_csn_value = slapi_entry_attr_get_charptr(entries[i], "nstombstonecsn");
if (tombstone_csn_value) {
+ csn_free(&tombstone_csn);
tombstone_csn = csn_new_by_string(tombstone_csn_value);
slapi_ch_free_string(&tombstone_csn_value);
if( csn_compare(tombstone_csn, conflict_csn) > 0 ) {
diff --git a/ldap/servers/plugins/roles/roles_cache.c b/ldap/servers/plugins/roles/roles_cache.c
index 1e5865a..4e3b0af 100644
--- a/ldap/servers/plugins/roles/roles_cache.c
+++ b/ldap/servers/plugins/roles/roles_cache.c
@@ -1276,6 +1276,8 @@ roles_cache_create_object_from_entry(Slapi_Entry *role_entry, role_object **resu

if (rc == 0) {
*result = this_role;
+ } else {
+ slapi_ch_free((void **)&this_role);
}

slapi_log_err(SLAPI_LOG_PLUGIN, ROLES_PLUGIN_SUBSYSTEM,
diff --git a/ldap/servers/plugins/views/views.c b/ldap/servers/plugins/views/views.c
index 6f784f5..5d84647 100644
--- a/ldap/servers/plugins/views/views.c
+++ b/ldap/servers/plugins/views/views.c
@@ -783,10 +783,12 @@ views_cache_create_applied_filter(viewEntry *pView)
"views_cache_create_applied_filter - View filter [%s] in entry [%s] is not valid\n",
buf, current->pDn);
}
- if (pBuiltFilter && pCurrentFilter)
+ if (pBuiltFilter && pCurrentFilter) {
pBuiltFilter = slapi_filter_join_ex(LDAP_FILTER_AND, pBuiltFilter, pCurrentFilter, 0);
- else
+ } else {
+ slapi_filter_free(pBuiltFilter, 1);
pBuiltFilter = pCurrentFilter;
+ }

slapi_ch_free((void **)&buf);

@@ -952,10 +954,12 @@ views_cache_create_descendent_filter(viewEntry *ancestor, PRBool useEntryID)
"views_cache_create_descendent_filter - View filter [%s] in entry [%s] is invalid\n",
buf, currentChild->pDn);
}
- if (pOrSubFilter && pCurrentFilter)
+ if (pOrSubFilter && pCurrentFilter) {
pOrSubFilter = slapi_filter_join_ex(LDAP_FILTER_OR, pOrSubFilter, pCurrentFilter, 0);
- else
+ } else {
+ slapi_filter_free(pOrSubFilter, 1);
pOrSubFilter = pCurrentFilter;
+ }

PR_smprintf_free(buf);
}
@@ -1756,7 +1760,9 @@ view_search_rewrite_callback(Slapi_PBlock *pb)

No comments:

Post a Comment