From 3d8e1c62134fe5e98edef167ce88f473adda722a Mon Sep 17 00:00:00 2001
From: Mark Reynolds <mreynolds@redhat.com>
Date: Wed, 5 Jun 2019 14:09:52 -0400
Subject: [PATCH] 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 +-
.../plugins/linkedattrs/linked_attrs.c | 4 +-
.../plugins/memberof/memberof_config.c | 12 +++-
.../plugins/posix-winsync/posix-winsync.c | 2 +-
ldap/servers/plugins/replication/cl5_api.c | 1 +
.../plugins/replication/repl5_replica.c | 2 +-
.../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 8bb628b25..06a5facd1 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 6d105f4fa..5680de669 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 8a0cb9122..5dd46a064 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 79786b723..e80c567c3 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 f6eee1957..4f9fb102b 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 89fd012e7..124217ee0 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 8e5ca4fff..c56e55f49 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 c035db290..6b5b28b0b 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 b3d619862..6a5363e43 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 02b645f41..7649aa14e 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 37fe77379..b134409e4 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 1e5865af8..4e3b0af54 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 6f784f599..5d8464761 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)
#endif
/* make it happen */
- slapi_pblock_set(pb, SLAPI_SEARCH_FILTER, outFilter);
+ if (outFilter) {
+ slapi_pblock_set(pb, SLAPI_SEARCH_FILTER, outFilter);
+ }
ret = -2;
diff --git a/ldap/servers/slapd/agtmmap.c b/ldap/servers/slapd/agtmmap.c
index 352ccefda..bc5fe1ee1 100644
--- a/ldap/servers/slapd/agtmmap.c
+++ b/ldap/servers/slapd/agtmmap.c
@@ -243,7 +243,7 @@ agt_mread_stats(int hdl, struct hdr_stats_t *pHdrInfo, struct ops_stats_t *pDsOp
return (EINVAL); /* Inavlid handle */
}
- if (mmap_tbl[hdl].fp <= (caddr_t)0) {
+ if (mmap_tbl[hdl].fp <= 0) {
return (EFAULT); /* Something got corrupted */
}
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
index f813447b6..1fee8050a 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -3009,7 +3009,7 @@ dblayer_erase_index_file_ex(backend *be, struct attrinfo *a, PRBool use_lock, in
ldbm_instance *inst = NULL;
dblayer_handle *handle = NULL;
char dbName[MAXPATHLEN] = {0};
- char *dbNamep;
+ char *dbNamep = NULL;
char *p;
int dbbasenamelen, dbnamelen;
int rc = 0;
@@ -3102,11 +3102,12 @@ dblayer_erase_index_file_ex(backend *be, struct attrinfo *a, PRBool use_lock, in
sprintf(p, "%c%s%s", get_sep(dbNamep), a->ai_type, LDBM_FILENAME_SUFFIX);
rc = dblayer_db_remove_ex(pEnv, dbNamep, 0, 0);
a->ai_dblayer = NULL;
- if (dbNamep != dbName)
- slapi_ch_free_string(&dbNamep);
} else {
rc = -1;
}
+ if (dbNamep != dbName) {
+ slapi_ch_free_string(&dbNamep);
+ }
slapi_ch_free((void **)&handle);
} else {
/* no handle to close */
@@ -5661,7 +5662,9 @@ dblayer_copy_directory(struct ldbminfo *li,
inst_dir, MAXPATHLEN);
if (!inst_dirp || !*inst_dirp) {
slapi_log_err(SLAPI_LOG_ERR, "dblayer_copy_directory", "Instance dir is NULL.\n");
- slapi_ch_free_string(&inst_dirp);
+ if (inst_dirp != inst_dir) {
+ slapi_ch_free_string(&inst_dirp);
+ }
return return_value;
}
len = strlen(inst_dirp);
@@ -5975,7 +5978,9 @@ dblayer_backup(struct ldbminfo *li, char *dest_dir, Slapi_Task *task)
slapi_task_log_notice(task,
"Backup: Instance dir is empty\n");
}
- slapi_ch_free_string(&inst_dirp);
+ if (inst_dirp != inst_dir) {
+ slapi_ch_free_string(&inst_dirp);
+ }
return_value = -1;
goto bail;
}
@@ -5993,8 +5998,9 @@ dblayer_backup(struct ldbminfo *li, char *dest_dir, Slapi_Task *task)
"(%s -> %s): err=%d\n",
inst_dirp, dest_dir, return_value);
}
- if (inst_dirp != inst_dir)
+ if (inst_dirp != inst_dir) {
slapi_ch_free_string(&inst_dirp);
+ }
goto bail;
}
if (inst_dirp != inst_dir)
@@ -6292,7 +6298,6 @@ dblayer_copy_dirand_contents(char *src_dir, char *dst_dir, int mode, Slapi_Task
break;
}
-
PR_snprintf(filename1, MAXPATHLEN, "%s/%s", src_dir, direntry->name);
PR_snprintf(filename2, MAXPATHLEN, "%s/%s", dst_dir, direntry->name);
slapi_log_err(SLAPI_LOG_ERR, "dblayer_copy_dirand_contents", "Moving file %s\n",
@@ -6305,8 +6310,7 @@ dblayer_copy_dirand_contents(char *src_dir, char *dst_dir, int mode, Slapi_Task
mode, task);
if (return_value) {
if (task) {
- slapi_task_log_notice(task,
- "Failed to copy directory %s", filename1);
+ slapi_task_log_notice(task, "Failed to copy directory %s", filename1);
}
break;
}
@@ -6523,13 +6527,13 @@ dblayer_restore(struct ldbminfo *li, char *src_dir, Slapi_Task *task, char *bena
return LDAP_UNWILLING_TO_PERFORM;
}
if (!dbversion_exists(li, src_dir)) {
- slapi_log_err(SLAPI_LOG_ERR, "dblayer_restore", "Backup directory %s does not "
- "contain a complete backup\n",
+ slapi_log_err(SLAPI_LOG_ERR, "dblayer_restore",
+ "Backup directory %s does not contain a complete backup\n",
src_dir);
if (task) {
- slapi_task_log_notice(task, "Restore: backup directory %s does not "
- "contain a complete backup",
- src_dir);
+ slapi_task_log_notice(task,
+ "Restore: backup directory %s does not contain a complete backup",
+ src_dir);
}
return LDAP_UNWILLING_TO_PERFORM;
}
@@ -6585,13 +6589,10 @@ dblayer_restore(struct ldbminfo *li, char *src_dir, Slapi_Task *task, char *bena
}
if (slapd_comp_path(src_dir, inst->inst_parent_dir_name) == 0) {
slapi_log_err(SLAPI_LOG_ERR,
- "dblayer_restore", "Backup dir %s and target dir %s "
- "are identical\n",
+ "dblayer_restore", "Backup dir %s and target dir %s are identical\n",
src_dir, inst->inst_parent_dir_name);
if (task) {
slapi_task_log_notice(task,
- "Restore: backup dir %s and target dir %s "
- "are identical\n",
src_dir, inst->inst_parent_dir_name);
}
PR_CloseDir(dirhandle);
@@ -7060,8 +7061,12 @@ dblayer_get_instance_data_dir(backend *be)
full_namep = dblayer_get_full_inst_dir(inst->inst_li, inst,
full_name, MAXPATHLEN);
if (!full_namep || !*full_namep) {
+ if (full_namep != full_name) {
+ slapi_ch_free_string(&full_namep);
+ }
return ret;
}
+
/* Does this directory already exist? */
if ((db_dir = PR_OpenDir(full_namep)) != NULL) {
/* yep. */
@@ -7072,8 +7077,9 @@ dblayer_get_instance_data_dir(backend *be)
ret = mkdir_p(full_namep, 0700);
}
- if (full_name != full_namep)
+ if (full_name != full_namep) {
slapi_ch_free_string(&full_namep);
+ }
return ret;
}
@@ -7097,7 +7103,6 @@ dblayer_in_import(ldbm_instance *inst)
inst_dirp = dblayer_get_full_inst_dir(inst->inst_li, inst,
inst_dir, MAXPATHLEN);
if (!inst_dirp || !*inst_dirp) {
- slapi_ch_free_string(&inst_dirp);
rval = -1;
goto done;
}
@@ -7117,8 +7122,9 @@ dblayer_in_import(ldbm_instance *inst)
}
PR_CloseDir(dirhandle);
done:
- if (inst_dirp != inst_dir)
+ if (inst_dirp != inst_dir) {
slapi_ch_free_string(&inst_dirp);
+ }
return rval;
}
@@ -7149,7 +7155,9 @@ dblayer_update_db_ext(ldbm_instance *inst, char *oldext, char *newext)
if (NULL == inst_dirp || '\0' == *inst_dirp) {
slapi_log_err(SLAPI_LOG_ERR,
"dblayer_update_db_ext", "Instance dir is NULL\n");
- slapi_ch_free_string(&inst_dirp);
+ if (inst_dirp != inst_dir) {
+ slapi_ch_free_string(&inst_dirp);
+ }
return -1; /* non zero */
}
for (a = (struct attrinfo *)avl_getfirst(inst->inst_attrs);
@@ -7210,8 +7218,9 @@ dblayer_update_db_ext(ldbm_instance *inst, char *oldext, char *newext)
done:
slapi_ch_free_string(&ofile);
slapi_ch_free_string(&nfile);
- if (inst_dirp != inst_dir)
+ if (inst_dirp != inst_dir) {
slapi_ch_free_string(&inst_dirp);
+ }
return rval;
}
diff --git a/ldap/servers/slapd/back-ldbm/index.c b/ldap/servers/slapd/back-ldbm/index.c
index f0b969ff4..2a7529b81 100644
--- a/ldap/servers/slapd/back-ldbm/index.c
+++ b/ldap/servers/slapd/back-ldbm/index.c
@@ -1776,13 +1776,14 @@ index_range_read_ext(
}
#endif
error:
+ slapi_log_err(SLAPI_LOG_TRACE, "index_range_read_ext", "(%s,%s) %lu candidates\n",
+ type, prefix ? prefix : "", (u_long)IDL_NIDS(idl));
+
index_free_prefix(prefix);
DBT_FREE_PAYLOAD(cur_key);
DBT_FREE_PAYLOAD(upperkey);
-
dblayer_release_index_file(be, ai, db);
- slapi_log_err(SLAPI_LOG_TRACE, "index_range_read_ext", "(%s,%s) %lu candidates\n",
- type, prefix, (u_long)IDL_NIDS(idl));
+
return (idl);
}
@@ -2406,7 +2407,7 @@ index_free_prefix(char *prefix)
prefix == prefix_SUB) {
/* do nothing */
} else {
- slapi_ch_free((void **)&prefix);
+ slapi_ch_free_string(&prefix);
}
}
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_add.c b/ldap/servers/slapd/back-ldbm/ldbm_add.c
index 0d82ae92b..a2585575f 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_add.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_add.c
@@ -162,7 +162,8 @@ ldbm_back_add(Slapi_PBlock *pb)
txn.back_txn_txn = parent_txn;
} else {
parent_txn = txn.back_txn_txn;
- slapi_pblock_set(pb, SLAPI_TXN, parent_txn);
+ if (parent_txn)
+ slapi_pblock_set(pb, SLAPI_TXN, parent_txn);
}
/* The dblock serializes writes to the database,
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt_config.c b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt_config.c
index 9ecb09903..fd2c7dbc8 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt_config.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt_config.c
@@ -142,7 +142,7 @@ ldbm_instance_attrcrypt_config_add_callback(Slapi_PBlock *pb __attribute__((unus
/* If the cipher was invalid, return unwilling to perform */
if (0 == cipher) {
- returntext = "invalid cipher";
+ PR_snprintf(returntext, SLAPI_DSE_RETURNTEXT_SIZE, "invalid cipher");
*returncode = LDAP_UNWILLING_TO_PERFORM;
ret = SLAPI_DSE_CALLBACK_ERROR;
} else {
@@ -167,7 +167,7 @@ ldbm_instance_attrcrypt_config_add_callback(Slapi_PBlock *pb __attribute__((unus
slapi_log_err(SLAPI_LOG_ERR, "ldbm_instance_attrcrypt_config_add_callback - "
"Attempt to encryption on a non-existent attribute: %s\n",
attribute_name, 0, 0);
- returntext = "attribute does not exist";
+ PR_snprintf(returntext, SLAPI_DSE_RETURNTEXT_SIZE, "attribute does not exist");
*returncode = LDAP_UNWILLING_TO_PERFORM;
ret = SLAPI_DSE_CALLBACK_ERROR;
}
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
index e9f3e32cc..76e37ae14 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
@@ -113,7 +113,8 @@ ldbm_back_delete(Slapi_PBlock *pb)
txn.back_txn_txn = parent_txn;
} else {
parent_txn = txn.back_txn_txn;
- slapi_pblock_set(pb, SLAPI_TXN, parent_txn);
+ if (parent_txn)
+ slapi_pblock_set(pb, SLAPI_TXN, parent_txn);
}
if (pb_conn) {
diff --git a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
index 60437f116..fb0fc5d1e 100644
--- a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
+++ b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
@@ -1154,7 +1154,7 @@ ldbm_back_ldbm2ldif(Slapi_PBlock *pb)
int task_flags;
Slapi_Task *task;
int run_from_cmdline = 0;
- char *instance_name;
+ char *instance_name = NULL;
ldbm_instance *inst = NULL;
int str2entry_options = 0;
int retry;
@@ -1203,11 +1203,11 @@ ldbm_back_ldbm2ldif(Slapi_PBlock *pb)
goto bye;
}
+ slapi_pblock_get(pb, SLAPI_BACKEND_INSTANCE_NAME, &instance_name);
if (run_from_cmdline) {
/* Now that we have processed the config information, we look for
* the be that should do the db2ldif. */
- slapi_pblock_get(pb, SLAPI_BACKEND_INSTANCE_NAME, &instance_name);
inst = ldbm_instance_find_by_name(li, instance_name);
if (NULL == inst) {
slapi_task_log_notice(task, "Unknown backend instance: %s", instance_name);
diff --git a/ldap/servers/slapd/back-ldbm/vlv_srch.c b/ldap/servers/slapd/back-ldbm/vlv_srch.c
index 368417483..1ac3e009e 100644
--- a/ldap/servers/slapd/back-ldbm/vlv_srch.c
+++ b/ldap/servers/slapd/back-ldbm/vlv_srch.c
@@ -168,7 +168,8 @@ vlvSearch_init(struct vlvSearch *p, Slapi_PBlock *pb, const Slapi_Entry *e, ldbm
/* switch context back to the DSE backend */
slapi_pblock_set(pb, SLAPI_BACKEND, oldbe);
- slapi_pblock_set(pb, SLAPI_PLUGIN, oldbe ? oldbe->be_database: NULL);
+ if (oldbe)
+ slapi_pblock_set(pb, SLAPI_PLUGIN, oldbe->be_database);
}
/* make (&(parentid=idofbase)(|(originalfilter)(objectclass=referral))) */
diff --git a/ldap/servers/slapd/connection.c b/ldap/servers/slapd/connection.c
index 4a611e7f4..d3bf82b67 100644
--- a/ldap/servers/slapd/connection.c
+++ b/ldap/servers/slapd/connection.c
@@ -1864,6 +1864,7 @@ connection_threadmain()
signal_listner();
}
} else if (1 == is_timedout) {
+ /* covscan reports this code is unreachable (2019/6/4) */
connection_make_readable_nolock(conn);
signal_listner();
}
diff --git a/ldap/servers/slapd/dse.c b/ldap/servers/slapd/dse.c
index 1f1f51630..125684329 100644
--- a/ldap/servers/slapd/dse.c
+++ b/ldap/servers/slapd/dse.c
@@ -2530,7 +2530,8 @@ dse_delete(Slapi_PBlock *pb) /* JCM There should only be one exit point from thi
dse_call_callback(pdse, pb, SLAPI_OPERATION_DELETE, DSE_FLAG_POSTOP, ec, NULL, &returncode, returntext);
done:
slapi_pblock_get(pb, SLAPI_DELETE_BEPOSTOP_ENTRY, &orig_entry);
- slapi_pblock_set(pb, SLAPI_DELETE_BEPOSTOP_ENTRY, ec);
+ if (ec)
+ slapi_pblock_set(pb, SLAPI_DELETE_BEPOSTOP_ENTRY, ec);
/* make sure OPRETURN and RESULT_CODE are set */
slapi_pblock_get(pb, SLAPI_PLUGIN_OPRETURN, &rc);
if (returncode || rc) {
@@ -2571,8 +2572,8 @@ done:
rc = LDAP_UNWILLING_TO_PERFORM;
}
}
-
- slapi_pblock_set(pb, SLAPI_DELETE_BEPOSTOP_ENTRY, orig_entry);
+ if (orig_entry)
+ slapi_pblock_set(pb, SLAPI_DELETE_BEPOSTOP_ENTRY, orig_entry);
slapi_send_ldap_result(pb, returncode, NULL, returntext, 0, NULL);
return dse_delete_return(returncode, ec);
}
diff --git a/ldap/servers/slapd/entrywsi.c b/ldap/servers/slapd/entrywsi.c
index 080eb15aa..5d1d7238a 100644
--- a/ldap/servers/slapd/entrywsi.c
+++ b/ldap/servers/slapd/entrywsi.c
@@ -359,7 +359,6 @@ entry_add_present_attribute_wsi(Slapi_Entry *e, Slapi_Attr *a)
* Preserves LDAP Information Model constraints,
* returning an LDAP result code.
*/
-static void entry_dump_stateinfo(char *msg, Slapi_Entry* e);
static Slapi_Value *attr_most_recent_deleted_value(Slapi_Attr *a);
static void resolve_single_valued_two_values(Slapi_Entry *e, Slapi_Attr *a, int attribute_state, Slapi_Value *current_value, Slapi_Value *second_current_value);
static void resolve_single_valued_check_restore_deleted_value(Slapi_Entry *e, Slapi_Attr *a);
@@ -397,6 +396,7 @@ entry_add_present_values_wsi(Slapi_Entry *e, const char *type, struct berval **b
/* Used for debug purpose, it dumps into the error log the
* entry with the replication stateinfo
*/
+#if 0
static void
entry_dump_stateinfo(char *msg, Slapi_Entry* e)
{
@@ -407,6 +407,7 @@ entry_dump_stateinfo(char *msg, Slapi_Entry* e)
slapi_log_err(SLAPI_LOG_ERR, msg, "%s\n", s);
slapi_ch_free((void **)&s);
}
+#endif
static int
entry_add_present_values_wsi_single_valued(Slapi_Entry *e, const char *type, struct berval **bervals, const CSN *csn, int urp, long flags)
@@ -1270,7 +1271,7 @@ attr_most_recent_deleted_value(Slapi_Attr *a)
most_recent_v = v;
while (i != -1) {
- vdcsn = value_get_csn(v, CSN_TYPE_VALUE_DELETED);
+ vdcsn = (CSN *)value_get_csn(v, CSN_TYPE_VALUE_DELETED);
if (csn_compare((const CSN *)most_recent_vdcsn, (const CSN *)vdcsn) < 0) {
most_recent_v = v;
@@ -1289,20 +1290,20 @@ static void
resolve_single_valued_two_values(Slapi_Entry *e, Slapi_Attr *a, int attribute_state, Slapi_Value *current_value, Slapi_Value *second_current_value)
{
- CSN *current_value_vucsn;
- CSN *second_current_value_vucsn;
+ const CSN *current_value_vucsn;
+ const CSN *second_current_value_vucsn;
Slapi_Value *value_to_zap;
current_value_vucsn = value_get_csn(current_value, CSN_TYPE_VALUE_UPDATED);
second_current_value_vucsn = value_get_csn(second_current_value, CSN_TYPE_VALUE_UPDATED);
/* First determine which present value will be zapped */
- if (csn_compare((const CSN *)second_current_value_vucsn, (const CSN *)current_value_vucsn) < 0) {
+ if (csn_compare(second_current_value_vucsn, current_value_vucsn) < 0) {
/*
* The second value is older but was distinguished at the time the current value was added
* then the second value should become current
*/
- if (value_distinguished_at_csn(e, a, second_current_value, (const CSN *)current_value_vucsn)) {
+ if (value_distinguished_at_csn(e, a, second_current_value, current_value_vucsn)) {
value_to_zap = current_value;
} else {
/* The second value being not distinguished, zap it as it is a single valued attribute */
@@ -1311,7 +1312,7 @@ resolve_single_valued_two_values(Slapi_Entry *e, Slapi_Attr *a, int attribute_st
} else {
/* Here the current_value is older than the second_current_value */
- if (value_distinguished_at_csn(e, a, current_value, (const CSN *)second_current_value_vucsn)) {
+ if (value_distinguished_at_csn(e, a, current_value, second_current_value_vucsn)) {
/* current_value was distinguished at the time the second value was added
* then the current_value should become the current */
value_to_zap = second_current_value;
@@ -1348,17 +1349,17 @@ resolve_single_valued_check_restore_deleted_value(Slapi_Entry *e, Slapi_Attr *a)
/* An attribute needs a present value */
entry_deleted_value_to_present_value(a, deleted_value);
} else {
- CSN *current_value_vucsn;
- CSN *deleted_value_vucsn;
- CSN *deleted_value_vdcsn;
+ const CSN *current_value_vucsn;
+ const CSN *deleted_value_vucsn;
+ const CSN *deleted_value_vdcsn;
deleted_value_vucsn = value_get_csn(deleted_value, CSN_TYPE_VALUE_UPDATED);
deleted_value_vdcsn = value_get_csn(deleted_value, CSN_TYPE_VALUE_DELETED);
current_value_vucsn = value_get_csn(current_value, CSN_TYPE_VALUE_UPDATED);
if (deleted_value_vucsn &&
- !value_distinguished_at_csn(e, a, current_value, (const CSN *)deleted_value_vucsn) &&
- (csn_compare((const CSN *)current_value_vucsn, (const CSN *)deleted_value_vucsn) < 0) &&
- (csn_compare((const CSN *)deleted_value_vdcsn, (const CSN *)current_value_vucsn) < 0)) {
+ !value_distinguished_at_csn(e, a, current_value, deleted_value_vucsn) &&
+ (csn_compare((const CSN *)current_value_vucsn, deleted_value_vucsn) < 0) &&
+ (csn_compare((const CSN *)deleted_value_vdcsn, current_value_vucsn) < 0)) {
/* the condition to resurrect the deleted value is
* - it is more recent than the current value
* - its value was deleted before the current value
@@ -1376,8 +1377,8 @@ static void
resolve_single_valued_zap_current(Slapi_Entry *e, Slapi_Attr *a)
{
Slapi_Value *current_value = NULL;
- CSN *current_value_vucsn;
- CSN *adcsn;
+ const CSN *current_value_vucsn;
+ const CSN *adcsn;
/* check if the current value should be deleted because
* older than adcsn and not distinguished
@@ -1386,7 +1387,7 @@ resolve_single_valued_zap_current(Slapi_Entry *e, Slapi_Attr *a)
current_value_vucsn = value_get_csn(current_value, CSN_TYPE_VALUE_UPDATED);
adcsn = attr_get_deletion_csn(a);
if (current_value != NULL) {
- if (csn_compare((const CSN *)adcsn, (const CSN *) current_value_vucsn) > 0) {
+ if (csn_compare(adcsn, (const CSN *) current_value_vucsn) > 0) {
/* the attribute was deleted after the value was last updated */
if (!value_distinguished_at_csn(e, a, current_value, (const CSN *) current_value_vucsn)) {
entry_present_value_to_zapped_value(a, current_value);
@@ -1404,17 +1405,17 @@ resolve_single_valued_set_adcsn(Slapi_Attr *a)
{
Slapi_Value *deleted_value = NULL;
Slapi_Value *current_value = NULL;
- CSN *current_value_vucsn;
- CSN *deleted_value_vucsn;
- CSN *adcsn;
+ const CSN *current_value_vucsn;
+ const CSN *deleted_value_vucsn;
+ const CSN *adcsn;
slapi_attr_first_value(a, ¤t_value);
current_value_vucsn = value_get_csn(current_value, CSN_TYPE_VALUE_UPDATED);
deleted_value = attr_most_recent_deleted_value(a);
deleted_value_vucsn = value_get_csn(deleted_value, CSN_TYPE_VALUE_UPDATED);
adcsn = attr_get_deletion_csn(a);
- if ((deleted_value != NULL && (csn_compare(adcsn, (const CSN *) deleted_value_vucsn) < 0)) ||
- (deleted_value == NULL && (csn_compare(adcsn, (const CSN *) current_value_vucsn) < 0))) {
+ if ((deleted_value != NULL && (csn_compare(adcsn, deleted_value_vucsn) < 0)) ||
+ (deleted_value == NULL && (csn_compare(adcsn, current_value_vucsn) < 0))) {
attr_set_deletion_csn(a, NULL);
}
}
@@ -1430,10 +1431,10 @@ resolve_single_valued_zap_deleted(Slapi_Attr *a)
{
Slapi_Value *deleted_value = NULL;
Slapi_Value *current_value = NULL;
- CSN *current_value_vucsn;
- CSN *deleted_value_vucsn;
- CSN *deleted_value_vdcsn;
- CSN *deleted_value_csn;
+ const CSN *current_value_vucsn;
+ const CSN *deleted_value_vucsn;
+ const CSN *deleted_value_vdcsn;
+ const CSN *deleted_value_csn;
PRBool deleted_on_mod_del = PR_FALSE; /* flag if a value was deleted specifically */
/* Now determine if the deleted value worth to be kept */
@@ -1445,16 +1446,16 @@ resolve_single_valued_zap_deleted(Slapi_Attr *a)
deleted_value_vdcsn = value_get_csn(deleted_value, CSN_TYPE_VALUE_DELETED);
/* get the appropriate csn to take into consideration: either from MOD_REPL or from MOD_DEL_specific */
- if (csn_compare((const CSN *) deleted_value_vdcsn, (const CSN *) deleted_value_vucsn) <= 0) {
+ if (csn_compare(deleted_value_vdcsn, deleted_value_vucsn) <= 0) {
deleted_value_csn = deleted_value_vucsn;
} else {
deleted_value_csn = deleted_value_vdcsn;
- if (0 == csn_compare_ext((const CSN *) current_value_vucsn, (const CSN *) deleted_value_vdcsn, CSN_COMPARE_SKIP_SUBSEQ)) {
+ if (0 == csn_compare_ext(current_value_vucsn, deleted_value_vdcsn, CSN_COMPARE_SKIP_SUBSEQ)) {
/* the deleted value was specifically delete in the same operation that set the current value */
deleted_on_mod_del = PR_TRUE;
}
}
- if ((csn_compare((const CSN *) deleted_value_csn, (const CSN *) current_value_vucsn) < 0) || deleted_on_mod_del) {
+ if ((csn_compare(deleted_value_csn, current_value_vucsn) < 0) || deleted_on_mod_del) {
entry_deleted_value_to_zapped_value(a, deleted_value);
}
}
diff --git a/ldap/servers/slapd/main.c b/ldap/servers/slapd/main.c
index 33ca9ce1d..2c7b53214 100644
--- a/ldap/servers/slapd/main.c
+++ b/ldap/servers/slapd/main.c
@@ -1220,6 +1220,7 @@ main(int argc, char **argv)
vattr_cleanup();
sasl_map_done();
cleanup:
+ slapi_ch_free_string(&(mcfg.myname));
compute_terminate();
SSL_ShutdownServerSessionIDCache();
SSL_ClearSessionCache();
@@ -2194,7 +2195,6 @@ slapd_exemode_ldif2db(struct main_config *mcfg)
return_value = -1;
}
slapi_pblock_destroy(pb);
- slapi_ch_free((void **)&(mcfg->myname));
charray_free(instances);
charray_free(mcfg->cmd_line_instance_names);
charray_free(mcfg->db2ldif_include);
@@ -2377,7 +2377,6 @@ slapd_exemode_db2ldif(int argc, char **argv, struct main_config *mcfg)
slapi_ch_free((void **)&my_ldiffile);
}
}
- slapi_ch_free((void **)&(mcfg->myname));
charray_free(mcfg->cmd_line_instance_names);
charray_free(mcfg->db2ldif_include);
if (mcfg->db2ldif_dump_replica) {
@@ -2505,8 +2504,6 @@ slapd_exemode_db2index(struct main_config *mcfg)
slapi_pblock_destroy(pb);
charray_free(mcfg->db2index_attrs);
- slapi_ch_free((void **)&(mcfg->myname));
-
charray_free(mcfg->db2ldif_include);
/* This frees mcfg->cmd_line_instance_name */
charray_free(instances);
@@ -2557,7 +2554,6 @@ slapd_exemode_db2archive(struct main_config *mcfg)
int32_t task_flags = SLAPI_TASK_RUNNING_FROM_COMMANDLINE;
slapi_pblock_set(pb, SLAPI_TASK_FLAGS, &task_flags);
return_value = (backend_plugin->plg_db2archive)(pb);
- slapi_ch_free((void **)&(mcfg->myname));
slapi_pblock_destroy(pb);
return return_value;
}
@@ -2605,7 +2601,6 @@ slapd_exemode_archive2db(struct main_config *mcfg)
slapi_pblock_set(pb, SLAPI_TASK_FLAGS, &task_flags);
slapi_pblock_set(pb, SLAPI_BACKEND_INSTANCE_NAME, mcfg->cmd_line_instance_name);
return_value = (backend_plugin->plg_archive2db)(pb);
- slapi_ch_free((void **)&(mcfg->myname));
slapi_pblock_destroy(pb);
return return_value;
}
@@ -2674,7 +2669,6 @@ slapd_exemode_upgradedb(struct main_config *mcfg)
return_value = -1;
}
slapi_pblock_destroy(pb);
- slapi_ch_free((void **)&(mcfg->myname));
return (return_value);
}
@@ -2747,7 +2741,6 @@ slapd_exemode_upgradednformat(struct main_config *mcfg)
}
slapi_pblock_destroy(pb);
bail:
- slapi_ch_free((void **)&(mcfg->myname));
return (rc);
}
diff --git a/ldap/servers/slapd/mapping_tree.c b/ldap/servers/slapd/mapping_tree.c
index 834949a67..b90424985 100644
--- a/ldap/servers/slapd/mapping_tree.c
+++ b/ldap/servers/slapd/mapping_tree.c
@@ -539,9 +539,6 @@ free_mapping_tree_node_arrays(backend ***be_list, char ***be_names, int **be_sta
{
int i;
- /* sanity check */
- PR_ASSERT(be_list != NULL && be_names != NULL && be_states != NULL && be_list_count != NULL);
-
if (*be_names != NULL)
for (i = 0; i < *be_list_count; ++i) {
slapi_ch_free((void **)&((*be_names)[i]));
@@ -647,9 +644,7 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
if (get_backends_from_attr(attr, &be_list, &be_names, &be_states,
&be_list_count, &be_list_size, NULL)) {
- free_mapping_tree_node_arrays(&be_list, &be_names, &be_states, &be_list_count);
- slapi_sdn_free(&subtree);
- return lderr;
+ goto free_and_return;
}
if (NULL == be_list) {
@@ -660,6 +655,7 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
}
} else if (!strcasecmp(type, "nsslapd-referral")) {
+ slapi_ch_array_free(referral);
referral = mtn_get_referral_from_entry(entry);
} else if (!strcasecmp(type, "nsslapd-state")) {
@@ -684,6 +680,7 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
slapi_entry_get_dn(entry));
continue;
}
+ slapi_ch_free_string(&plugin_lib);
plugin_lib = slapi_ch_strdup(slapi_value_get_string(val));
} else if (!strcasecmp(type, "nsslapd-distribution-funct")) {
slapi_attr_first_value(attr, &val);
@@ -693,6 +690,7 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
slapi_entry_get_dn(entry));
continue;
}
+ slapi_ch_free_string(&plugin_funct);
plugin_funct = slapi_ch_strdup(slapi_value_get_string(val));
} else if (!strcasecmp(type, "nsslapd-distribution-root-update")) {
const char *sval;
@@ -737,13 +735,16 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
if (be == NULL) {
slapi_log_err(SLAPI_LOG_ERR, "mapping_tree_entry_add",
"Default container has not been created for the NULL SUFFIX node.\n");
- slapi_sdn_free(&subtree);
- return -1;
+ lderr = -1;
+ goto free_and_return;
}
be_list_size = 1;
be_list_count = 0;
+ /* We're in a loop and potentially overwriting these pointers so free them first */
+ free_mapping_tree_node_arrays(&be_list, &be_names, &be_states, &be_list_count);
+
be_list = (backend **)slapi_ch_calloc(1, sizeof(backend *));
be_names = (char **)slapi_ch_calloc(1, sizeof(char *));
be_states = (int *)slapi_ch_calloc(1, sizeof(int));
@@ -767,17 +768,13 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
slapi_log_err(SLAPI_LOG_ERR,
"Node %s must define a backend\n",
slapi_entry_get_dn(entry), 0, 0);
- slapi_sdn_free(&subtree);
- free_mapping_tree_node_arrays(&be_list, &be_names, &be_states, &be_list_count);
- return lderr;
+ goto free_and_return;
}
if (((state == MTN_REFERRAL) || (state == MTN_REFERRAL_ON_UPDATE)) && (referral == NULL)) {
slapi_log_err(SLAPI_LOG_ERR,
"Node %s must define referrals to be in referral state\n",
slapi_entry_get_dn(entry), 0, 0);
- slapi_sdn_free(&subtree);
- free_mapping_tree_node_arrays(&be_list, &be_names, &be_states, &be_list_count);
- return lderr;
+ goto free_and_return;
}
if (plugin_lib && plugin_funct) {
@@ -787,11 +784,7 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
slapi_log_err(SLAPI_LOG_ERR, "mapping_tree_entry_add",
"Node %s cannot find distribution plugin. " SLAPI_COMPONENT_NAME_NSPR " %d (%s)\n",
slapi_entry_get_dn(entry), PR_GetError(), slapd_pr_strerror(PR_GetError()));
- slapi_sdn_free(&subtree);
- slapi_ch_free((void **)&plugin_funct);
- slapi_ch_free((void **)&plugin_lib);
- free_mapping_tree_node_arrays(&be_list, &be_names, &be_states, &be_list_count);
- return lderr;
+ goto free_and_return;
}
} else if ((plugin_lib == NULL) && (plugin_funct == NULL)) {
/* nothing configured -> OK */
@@ -801,11 +794,7 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
slapi_log_err(SLAPI_LOG_ERR, "mapping_tree_entry_add",
"Node %s must define both lib and funct for distribution plugin\n",
slapi_entry_get_dn(entry));
- slapi_sdn_free(&subtree);
- slapi_ch_free((void **)&plugin_funct);
- slapi_ch_free((void **)&plugin_lib);
- free_mapping_tree_node_arrays(&be_list, &be_names, &be_states, &be_list_count);
- return lderr;
+ goto free_and_return;
}
/* Now we can create the node for this mapping tree entry. */
@@ -838,6 +827,15 @@ mapping_tree_entry_add(Slapi_Entry *entry, mapping_tree_node **newnodep)
*newnodep = node;
}
+ return lderr;
+
+free_and_return:
+ slapi_sdn_free(&subtree);
+ slapi_ch_array_free(referral);
+ slapi_ch_free_string(&plugin_funct);
+ slapi_ch_free_string(&plugin_lib);
+ free_mapping_tree_node_arrays(&be_list, &be_names, &be_states, &be_list_count);
+
return lderr;
}
diff --git a/ldap/servers/slapd/modify.c b/ldap/servers/slapd/modify.c
index 896cccfb9..bbc0ab71a 100644
--- a/ldap/servers/slapd/modify.c
+++ b/ldap/servers/slapd/modify.c
@@ -1444,9 +1444,11 @@ optimize_mods(Slapi_Mods *smods)
prev_mod = slapi_mods_get_first_mod(smods);
while ((mod = slapi_mods_get_next_mod(smods))) {
- if ((SLAPI_IS_MOD_ADD(prev_mod->mod_op) || SLAPI_IS_MOD_DELETE(prev_mod->mod_op)) &&
+ if (prev_mod &&
+ (SLAPI_IS_MOD_ADD(prev_mod->mod_op) || SLAPI_IS_MOD_DELETE(prev_mod->mod_op)) &&
(prev_mod->mod_op == mod->mod_op) &&
- (!strcasecmp(prev_mod->mod_type, mod->mod_type))) {
+ (!strcasecmp(prev_mod->mod_type, mod->mod_type)))
+ {
/* Get the current number of mod values from the previous mod. Do it once per attr */
if (mod_count == 0) {
for (; prev_mod->mod_bvalues != NULL && prev_mod->mod_bvalues[mod_count] != NULL; mod_count++)
diff --git a/ldap/servers/slapd/opshared.c b/ldap/servers/slapd/opshared.c
index dd6917363..dac42eb13 100644
--- a/ldap/servers/slapd/opshared.c
+++ b/ldap/servers/slapd/opshared.c
@@ -998,7 +998,8 @@ free_and_return_nolock:
slapi_sdn_free(&sdn);
}
slapi_sdn_free(&basesdn);
- slapi_pblock_set(pb, SLAPI_SEARCH_TARGET_SDN, orig_sdn);
+ if (orig_sdn)
+ slapi_pblock_set(pb, SLAPI_SEARCH_TARGET_SDN, orig_sdn);
slapi_ch_free_string(&proxydn);
slapi_ch_free_string(&proxystr);
diff --git a/ldap/servers/slapd/plugin_internal_op.c b/ldap/servers/slapd/plugin_internal_op.c
index 9da266b61..622daffdb 100644
--- a/ldap/servers/slapd/plugin_internal_op.c
+++ b/ldap/servers/slapd/plugin_internal_op.c
@@ -368,7 +368,8 @@ seq_internal_callback_pb(Slapi_PBlock *pb, void *callback_data, plugin_result_ca
slapi_pblock_set(pb, SLAPI_BACKEND, be);
slapi_pblock_set(pb, SLAPI_PLUGIN, be->be_database);
slapi_pblock_set(pb, SLAPI_SEQ_ATTRNAME, attrname);
- slapi_pblock_set(pb, SLAPI_SEQ_VAL, val);
+ if (val)
+ slapi_pblock_set(pb, SLAPI_SEQ_VAL, val);
slapi_pblock_set(pb, SLAPI_REQCONTROLS, controls);
/* set actions taken to process the operation */
diff --git a/ldap/servers/slapd/plugin_syntax.c b/ldap/servers/slapd/plugin_syntax.c
index e208442d5..dc7106da5 100644
--- a/ldap/servers/slapd/plugin_syntax.c
+++ b/ldap/servers/slapd/plugin_syntax.c
@@ -247,7 +247,9 @@ plugin_call_syntax_filter_sub_sv(
Operation *op = NULL;
/* to pass SLAPI_SEARCH_TIMELIMIT & SLAPI_OPINITATED_TIME */
slapi_pblock_get(pb, SLAPI_OPERATION, &op);
- slapi_pblock_set(pipb, SLAPI_OPERATION, op);
+ if (op) {
+ slapi_pblock_set(pipb, SLAPI_OPERATION, op);
+ }
}
rc = (*sub_fn)(pipb, fsub->sf_initial, fsub->sf_any, fsub->sf_final, va);
} else {
diff --git a/ldap/servers/slapd/rdn.c b/ldap/servers/slapd/rdn.c
index 41c075036..fdb6b1773 100644
--- a/ldap/servers/slapd/rdn.c
+++ b/ldap/servers/slapd/rdn.c
@@ -934,10 +934,7 @@ slapi_rdn_get_dn(Slapi_RDN *srdn, char **dn)
if (NULL == srdn || NULL == srdn->all_rdns || NULL == dn) {
return -1;
}
- for (rdnp = srdn->all_rdns; rdnp && *rdnp; rdnp++) {
- len += strlen(*rdnp) + 1; /* 1 for ',' */
- }
- len += 1;
+
len = slapi_rdn_get_dn_len(srdn);
*dn = (char *)slapi_ch_malloc(len);
enddn = *dn + len - 1;
diff --git a/ldap/servers/slapd/sasl_map.c b/ldap/servers/slapd/sasl_map.c
index 72bd01079..9593fd075 100644
--- a/ldap/servers/slapd/sasl_map.c
+++ b/ldap/servers/slapd/sasl_map.c
@@ -336,7 +336,9 @@ _sasl_unescape_parenthesis(char *input)
*d++ = *s;
}
}
- *d = '\0';
+ if (d) {
+ *d = '\0';
+ }
return input;
}
diff --git a/ldap/servers/slapd/schema.c b/ldap/servers/slapd/schema.c
index 379fe208b..f609c220d 100644
--- a/ldap/servers/slapd/schema.c
+++ b/ldap/servers/slapd/schema.c
@@ -2363,9 +2363,9 @@ schema_delete_attributes(Slapi_Entry *entryBefore __attribute__((unused)), LDAPM
attr_ldif[k] = tolower(attr_ldif[k]);
}
- sizedbuffer_allocate(psbAttrName, strlen(attr_ldif));
- sizedbuffer_allocate(psbAttrOid, strlen(attr_ldif));
- sizedbuffer_allocate(psbAttrSyntax, strlen(attr_ldif));
+ sizedbuffer_allocate(psbAttrName, strlen(attr_ldif) + 1);
+ sizedbuffer_allocate(psbAttrOid, strlen(attr_ldif) + 1);
+ sizedbuffer_allocate(psbAttrSyntax, strlen(attr_ldif) + 1);
sscanf(attr_ldif, "%s name %s syntax %s",
psbAttrOid->buffer, psbAttrName->buffer, psbAttrSyntax->buffer);
diff --git a/ldap/servers/slapd/search.c b/ldap/servers/slapd/search.c
index 7e253f535..953227ba0 100644
--- a/ldap/servers/slapd/search.c
+++ b/ldap/servers/slapd/search.c
@@ -37,7 +37,7 @@ do_search(Slapi_PBlock *pb)
{
Slapi_Operation *operation;
BerElement *ber;
- int i, err, attrsonly;
+ int i, err = 0, attrsonly;
ber_int_t scope, deref, sizelimit, timelimit;
char *rawbase = NULL;
int rawbase_set_in_pb = 0; /* was rawbase set in pb? */
@@ -232,6 +232,7 @@ do_search(Slapi_PBlock *pb)
log_search_access(pb, base, scope, fstr, "invalid attribute request");
send_ldap_result(pb, LDAP_PROTOCOL_ERROR, NULL, NULL, 0, NULL);
slapi_ch_free_string(&normaci);
+ err = 1; /* Make sure we free everything */
goto free_and_return;
}
}
@@ -357,8 +358,8 @@ do_search(Slapi_PBlock *pb)
ps_add(pb, changetypes, send_entchg_controls);
}
-free_and_return:;
- if (!psearch || rc != 0) {
+free_and_return:
+ if (!psearch || rc != 0 || err != 0) {
slapi_ch_free_string(&fstr);
slapi_filter_free(filter, 1);
slapi_pblock_get(pb, SLAPI_SEARCH_ATTRS, &attrs);
diff --git a/ldap/servers/slapd/tools/dbscan.c b/ldap/servers/slapd/tools/dbscan.c
index 53cdb8985..c74d4823c 100644
--- a/ldap/servers/slapd/tools/dbscan.c
+++ b/ldap/servers/slapd/tools/dbscan.c
@@ -532,7 +532,7 @@ print_changelog(unsigned char *data, int len __attribute__((unused)))
replgen = ntohl(thetime32);
pos += sizeof(uint32_t);
thetime = (time_t)replgen;
- db_printf("\treplgen: %ld %s", replgen, ctime((time_t *)&thetime));
+ db_printf("\treplgen: %u %s", replgen, ctime((time_t *)&thetime));
/* read csn */
print_attr("csn", &pos);
@@ -717,12 +717,15 @@ display_item(DBC *cursor, DBT *key, DBT *data)
tmpbuflen = (key->size > data->size ? key->size : data->size) + 1024;
}
if (buflen < tmpbuflen) {
+ unsigned char *tmp = NULL;
buflen = tmpbuflen;
- buf = (unsigned char *)realloc(buf, buflen);
- if (NULL == buf) {
+ tmp = (unsigned char *)realloc(buf, buflen);
+ if (NULL == tmp) {
+ free(buf);
printf("\t(malloc failed -- %d bytes)\n", buflen);
return;
}
+ buf = tmp;
}
if (display_mode & RAWDATA) {
diff --git a/ldap/servers/slapd/tools/ldclt/ldapfct.c b/ldap/servers/slapd/tools/ldclt/ldapfct.c
index 373076500..ca0912d6c 100644
--- a/ldap/servers/slapd/tools/ldclt/ldapfct.c
+++ b/ldap/servers/slapd/tools/ldclt/ldapfct.c
@@ -986,9 +986,9 @@ buildVersatileAttribute(
break;
default:
/*
- * Should not happen, unless new variant parsed and not
- * integrated here, or "jardinage"....
- */
+ * Should not happen, unless new variant parsed and not
+ * integrated here, or "jardinage"....
+ */
field = NULL;
field->how = 22; /* Crash !!! */
break;
@@ -3231,7 +3231,7 @@ doExactSearch(
case LDAP_RES_SEARCH_ENTRY:
nentries++;
/* get dereferenced value into resctrls: deref parsing */
- parse_rc = ldap_get_entry_controls(tttctx->ldapCtx, e, &resctrls);
+ ldap_get_entry_controls(tttctx->ldapCtx, e, &resctrls);
if (resctrls != NULL) { /* parse it only when we have return saved in server control */
/* get dn */
if ((dn = ldap_get_dn(tttctx->ldapCtx, e)) != NULL) {
diff --git a/ldap/servers/slapd/tools/ldclt/ldclt.c b/ldap/servers/slapd/tools/ldclt/ldclt.c
index e72b775e2..586a14713 100644
--- a/ldap/servers/slapd/tools/ldclt/ldclt.c
+++ b/ldap/servers/slapd/tools/ldclt/ldclt.c
@@ -816,7 +816,7 @@ trapVector(
int
initMainThread(void)
{
- struct sigaction act;
+ struct sigaction act = {0};
/*
* Trap SIGINT.
diff --git a/ldap/servers/slapd/tools/ldif.c b/ldap/servers/slapd/tools/ldif.c
index 3548c7d49..a13e99f89 100644
--- a/ldap/servers/slapd/tools/ldif.c
+++ b/ldap/servers/slapd/tools/ldif.c
@@ -92,11 +92,13 @@ main(int argc, char **argv)
}
if (nread + cur > max) {
max += BUFSIZ;
- if ((val = (char *)realloc(val, max)) ==
- NULL) {
+ char *tmp = NULL;
+ if ((tmp = (char *)realloc(val, max)) == NULL) {
+ free(val);
perror("realloc");
return (1);
}
+ val = tmp;
}
memcpy(val + cur, buf, nread);
cur += nread;
@@ -125,12 +127,14 @@ main(int argc, char **argv)
/* if buffer was filled, expand and keep reading unless last char
is linefeed, in which case it is OK for buffer to be full */
while (((curlen = strlen(buf)) == (maxlen - 1)) && buf[curlen - 1] != '\n') {
+ char *tmp = NULL;
maxlen *= 2;
- if ((buf = (char *)realloc(buf, maxlen)) == NULL) {
+ if ((tmp = (char *)realloc(buf, maxlen)) == NULL) {
perror("realloc");
free(buf);
return (1);
}
+ buf = tmp;
if (NULL == fgets(buf + curlen, maxlen / 2 + 1, stdin)) {
/* no more input to read. */
break;
diff --git a/ldap/servers/slapd/tools/mmldif.c b/ldap/servers/slapd/tools/mmldif.c
index cdcf4b16d..96b606a29 100644
--- a/ldap/servers/slapd/tools/mmldif.c
+++ b/ldap/servers/slapd/tools/mmldif.c
@@ -700,7 +700,6 @@ readrec(edfFILE *edf1, attrib1_t **attrib)
attrib1_t *freelist = *attrib;
attrib1_t *newlist = NULL;
attrib1_t *a;
- int ignore_rec = FALSE;
int free_it = 0;
*attrib = NULL;
@@ -758,7 +757,7 @@ readrec(edfFILE *edf1, attrib1_t **attrib)
if (!stricmp(line, "authoritative"))
continue;
if (!freelist) {
- att = (attrib1_t *)malloc(sizeof(attrib1_t));
+ att = (attrib1_t *)calloc(1, sizeof(struct attrib1_t *));
free_it = 1;
} else {
att = freelist;
@@ -881,8 +880,6 @@ readrec(edfFILE *edf1, attrib1_t **attrib)
}
*attrib = newlist;
freefreelist(freelist);
- if (ignore_rec)
- return IDDS_MM_ABSENT;
return IDDS_MM_OK;
}
diff --git a/ldap/servers/slapd/tools/pwenc.c b/ldap/servers/slapd/tools/pwenc.c
index d92e94e17..87ca17488 100644
--- a/ldap/servers/slapd/tools/pwenc.c
+++ b/ldap/servers/slapd/tools/pwenc.c
@@ -362,6 +362,7 @@ slapd_config(const char *configdir, const char *givenconfigfile)
}
} else if (slapi_sdn_compare(&config_dn, slapi_entry_get_sdn_const(e)) == 0) {
/* Get the root scheme out and initialise it (if it exists) */
+ slapi_ch_free_string(&rootschemename);
rootschemename = slapi_entry_attr_get_charptr(e, CONFIG_ROOTPWSTORAGESCHEME_ATTRIBUTE);
}
diff --git a/ldap/servers/slapd/tools/rsearch/infadd.c b/ldap/servers/slapd/tools/rsearch/infadd.c
index db6fb23ae..6fe84f9e1 100644
--- a/ldap/servers/slapd/tools/rsearch/infadd.c
+++ b/ldap/servers/slapd/tools/rsearch/infadd.c
@@ -309,7 +309,7 @@ main(int argc, char **argv)
at_getThread(threads[x], NULL), min, max, count,
ntot);
}
- if (!quiet && (numThreads > 1 || !verbose)) {
+ if (numThreads > 1 && !quiet && !verbose) {
double val = 1000.0 * (double)total / (double)sampleInterval;
fprintf(stdout, "Rate: %7.2f/thr (%6.2f/sec =%7.4fms/op), "
"total: %u (%d thr)\n",
diff --git a/ldap/servers/slapd/tools/rsearch/rsearch.c b/ldap/servers/slapd/tools/rsearch/rsearch.c
index 7602b16d8..347c84d2a 100644
--- a/ldap/servers/slapd/tools/rsearch/rsearch.c
+++ b/ldap/servers/slapd/tools/rsearch/rsearch.c
@@ -467,7 +467,10 @@ main(int argc, char **argv)
printf("T%d min=%4ums, max=%4ums, count = %u\n",
st_getThread(threads[x], NULL), min, max, count);
}
- rate = (double)total / (double)numThreads;
+ rate = 0.0;
+ if (numThreads) {
+ rate = (double)total / (double)numThreads;
+ }
val = 1000.0 * (double)total / (double)sampleInterval;
cumrate += rate;
if ((numThreads > 1) || (!verbose)) {
diff --git a/lib/ldaputil/certmap.c b/lib/ldaputil/certmap.c
index efe531a51..dc2fdde43 100644
--- a/lib/ldaputil/certmap.c
+++ b/lib/ldaputil/certmap.c
@@ -374,6 +374,7 @@ dbinfo_to_certinfo(DBConfDBInfo_t *db_info,
rv = ldapu_list_add_info(propval_list, propval);
if (rv != LDAPU_SUCCESS) {
+ ldapu_propval_free((void *)propval, (void *)propval);
goto error;
}
@@ -700,15 +701,14 @@ certmap_read_certconfig_file(const char *file)
while (curdb) {
nextdb = curdb->next;
rv = dbinfo_to_certinfo(curdb, &certinfo);
-
if (rv != LDAPU_SUCCESS) {
dbconf_free_confinfo(conf_info);
return rv;
}
rv = process_certinfo(certinfo);
-
if (rv != LDAPU_SUCCESS) {
+ ldapu_certinfo_free(certinfo);
dbconf_free_confinfo(conf_info);
return rv;
}
@@ -1330,8 +1330,11 @@ ldapu_cert_to_ldap_entry(void *cert, LDAP *ld, const char *basedn, LDAPMessage *
rv = (*mapfn)(cert, ld, certmap_info, &ldapDN, &filter);
- if (rv != LDAPU_SUCCESS)
+ if (rv != LDAPU_SUCCESS) {
+ free(ldapDN);
+ free(filter);
return rv;
+ }
/* Get the search function from the certmap_info - certinfo maybe NULL */
searchfn = ldapu_get_cert_searchfn_sub(certmap_info);
@@ -1339,10 +1342,8 @@ ldapu_cert_to_ldap_entry(void *cert, LDAP *ld, const char *basedn, LDAPMessage *
rv = (*searchfn)(cert, ld, certmap_info, basedn, ldapDN, filter,
certmap_attrs, &res_array);
- if (ldapDN)
- free(ldapDN);
- if (filter)
- free(filter);
+ free(ldapDN);
+ free(filter);
/*
* Get the verify cert function & call it.
diff --git a/lib/libaccess/usrcache.cpp b/lib/libaccess/usrcache.cpp
index 5ea8259fe..b6ac58d3c 100644
--- a/lib/libaccess/usrcache.cpp
+++ b/lib/libaccess/usrcache.cpp
@@ -157,11 +157,11 @@ int acl_usr_cache_init ()
}
else {
singleDbTable = 0;
- databaseUserCacheTable = PR_NewHashTable(0,
+ databaseUserCacheTable = PR_NewHashTable(0,
PR_HashCaseString,
PR_CompareCaseStrings,
PR_CompareValues,
- &ACLPermAllocOps,
+ &ACLPermAllocOps,
usrcache_pool);
}
@@ -176,7 +176,7 @@ int acl_usr_cache_init ()
for(i = 0; i < num_usrobj; i++){
usrobj = (UserCacheObj *)pool_malloc(usrcache_pool,
sizeof(UserCacheObj));
-
+
if (!usrobj) return -1;
memset((void *)usrobj, 0, sizeof(UserCacheObj));
PR_INSERT_AFTER(&usrobj->list, usrobj_list);
diff --git a/src/cockpit/389-console/src/lib/database/chaining.jsx b/src/cockpit/389-console/src/lib/database/chaining.jsx
index 3dd3ec48e..c169e7bd3 100644
--- a/src/cockpit/389-console/src/lib/database/chaining.jsx
+++ b/src/cockpit/389-console/src/lib/database/chaining.jsx
@@ -916,7 +916,7 @@ export class ChainingConfig extends React.Component {
</Checkbox>;
} else {
proxiedAuth =
- <Checkbox id="nsproxiedauthorization" onChange={this.handleChange} defaultChecked
+ <Checkbox id="nsproxiedauthorization" onChange={this.handleChange}
title="Allow proxied authentication to the remote server. (nsproxiedauthorization).">
Allow Proxied Authentication
</Checkbox>;
diff --git a/src/cockpit/389-console/src/lib/database/suffix.jsx b/src/cockpit/389-console/src/lib/database/suffix.jsx
index 9cfb95b92..3f3bc82ec 100644
--- a/src/cockpit/389-console/src/lib/database/suffix.jsx
+++ b/src/cockpit/389-console/src/lib/database/suffix.jsx
@@ -254,10 +254,10 @@ export class Suffix extends React.Component {
// Do import
let export_cmd = [
"dsconf", "-j", "ldapi://%2fvar%2frun%2fslapd-" + this.props.serverId + ".socket",
- "backend", "export", this.props.suffix, "--ldif=" + this.state.ldifLocation, "--encrypted"
+ "backend", "export", this.props.suffix, "--ldif=" + this.state.ldifLocation
];
- if (this.state.attrEncrpytion) {
+ if (this.state.attrEncryption) {
export_cmd.push("--encrypted");
}
diff --git a/src/cockpit/389-console/src/replication.js b/src/cockpit/389-console/src/replication.js
index 6ef363523..2fe3a6e48 100644
--- a/src/cockpit/389-console/src/replication.js
+++ b/src/cockpit/389-console/src/replication.js
@@ -1185,7 +1185,7 @@ $(document).ready( function() {
}
} else {
if ( !('nsds5replicatedattributelisttotal' in repl_agmt_values) ||
- agmt_tot_exclude != repl_agmt_values['nsds5replicatedattributelisttotal'].replace(frac_prefix, ""));
+ agmt_tot_exclude != repl_agmt_values['nsds5replicatedattributelisttotal'].replace(frac_prefix, ""))
{
cmd_args.push('--frac-list-total=' + frac_prefix + ' ' + agmt_tot_exclude);
}
diff --git a/src/lib389/lib389/agreement.py b/src/lib389/lib389/agreement.py
index dcab900b8..84e2f8c61 100644
--- a/src/lib389/lib389/agreement.py
+++ b/src/lib389/lib389/agreement.py
@@ -266,6 +266,7 @@ class Agreement(DSLdapObject):
# Extract the csn timstamps and compare them
agmt_time = 0
+ con_time = 0
match = Agreement.csnre.match(agmt_maxcsn)
if match:
agmt_time = int(match.group(1), 16)
diff --git a/src/lib389/lib389/backend.py b/src/lib389/lib389/backend.py
index 64a40c15a..353a3e117 100644
--- a/src/lib389/lib389/backend.py
+++ b/src/lib389/lib389/backend.py
@@ -480,6 +480,9 @@ class Backend(DSLdapObject):
:returns: DSLdapObject of the created entry
"""
+ sample_entries = False
+ parent_suffix = False
+
# normalize suffix (remove spaces between comps)
if dn is not None:
dn_comps = ldap.dn.explode_dn(dn.lower())
@@ -490,9 +493,8 @@ class Backend(DSLdapObject):
dn_comps = ldap.dn.explode_dn(suffix_dn)
ndn = ",".join(dn_comps)
properties['nsslapd-suffix'] = ndn
-
- sample_entries = properties.pop(BACKEND_SAMPLE_ENTRIES, False)
- parent_suffix = properties.pop('parent', False)
+ sample_entries = properties.pop(BACKEND_SAMPLE_ENTRIES, False)
+ parent_suffix = properties.pop('parent', False)
# Okay, now try to make the backend.
super(Backend, self).create(dn, properties, basedn)
diff --git a/src/lib389/lib389/cli_conf/backend.py b/src/lib389/lib389/cli_conf/backend.py
index 77ce3ddec..36e32ec48 100644
--- a/src/lib389/lib389/cli_conf/backend.py
+++ b/src/lib389/lib389/cli_conf/backend.py
@@ -422,7 +422,7 @@ def backend_set(inst, basedn, log, args):
if args.add_referral:
be.add('nsslapd-referral', args.add_referral)
if args.del_referral:
- be.remove('nsslapd-referral', args.add_referral)
+ be.remove('nsslapd-referral', args.del_referral)
if args.cache_size:
be.set('nsslapd-cachesize', args.cache_size)
if args.cache_memsize:
--
2.21.0