Hi,
this patch fixes a couple of resource leaks and unchecked return and an
uninitialised value found by Coverity.
bye,
Sumit
From b39269b5adf5d2ae6076d5aa4394e68924027ce6 Mon Sep 17 00:00:00 2001
From: Sumit Bose sb...@redhat.com
Date: Tue, 2 Oct 2012 11:25:04 +0200
Subject: [PATCH] Fix various issues found by Coverity
---
daemons/ipa-sam/ipa_sam.c| 2 +-
daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap.c | 6 --
.../ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c | 12 +++-
.../ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c| 6 --
daemons/ipa-slapi-plugins/ipa-range-check/ipa_range_check.c | 3 ++-
daemons/ipa-slapi-plugins/ipa-sidgen/ipa_sidgen_task.c | 5 -
6 Dateien geändert, 22 Zeilen hinzugefügt(+), 12 Zeilen entfernt(-)
diff --git a/daemons/ipa-sam/ipa_sam.c b/daemons/ipa-sam/ipa_sam.c
index
3d4f741c157fb624e272d800bd9e0cdf9edb9444..db300022af0a29c32a2df5e5ef2bc12f39ed2886
100644
--- a/daemons/ipa-sam/ipa_sam.c
+++ b/daemons/ipa-sam/ipa_sam.c
@@ -1522,7 +1522,7 @@ static int set_cross_realm_pw(struct ldapsam_privates
*ldap_state,
krb5_error_code krberr;
krb5_context krbctx;
krb5_principal service_princ;
- struct keys_container keys;
+ struct keys_container keys = {0, NULL};
char *err_msg;
struct berval *reqdata = NULL;
struct berval *retdata = NULL;
diff --git a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap.c
b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap.c
index
d7a59d51229ca9fbf754a2600e42339dcc235698..54d44ebf64b1efa0dda06773736d3413a6b70977
100644
--- a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap.c
+++ b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap.c
@@ -124,13 +124,15 @@ static int ipa_cldap_init_service(Slapi_PBlock *pb,
slapi_pblock_get(pb, SLAPI_PLUGIN_CONFIG_ENTRY, e);
if (!e) {
LOG_FATAL(Plugin configuration not found!\n);
-return -1;
+ret = -1;
+goto done;
}
ctx-base_dn = slapi_entry_attr_get_charptr(e, nsslapd-basedn);
if (!ctx-base_dn) {
LOG_FATAL(Plugin configuration not found!\n);
-return -1;
+ret = -1;
+goto done;
}
/* create a stop pipe so the main DS thread can interrupt the poll()
diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c
b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c
index
f48bead04cbb18b040557b7b78a6cb27a3368422..47d4d68d1d7f5e4f02ad68849b840eaa63f7c33d
100644
--- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c
+++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c
@@ -137,10 +137,12 @@ int parse_request_data(struct berval *req_val, struct
extdom_req **_req)
break;
default:
ber_free(ber, 1);
+free(req);
return LDAP_PROTOCOL_ERROR;
}
ber_free(ber, 1);
if (tag == LBER_ERROR) {
+free(req);
return LDAP_PROTOCOL_ERROR;
}
@@ -284,11 +286,6 @@ static int get_domain_info(struct ipa_extdom_ctx *ctx,
const char *domain_name,
domain_info-flat_name = slapi_entry_attr_get_charptr(e[0],
ipaNTFlatName);
-/* TODO: read range from LDAP server */
-/*
-range.min = 20;
-range.max = 40;
-*/
ret = set_domain_range(ctx, domain_info-sid, range);
if (ret != 0) {
goto done;
@@ -313,6 +310,11 @@ done:
slapi_free_search_results_internal(pb);
slapi_pblock_destroy(pb);
free(filter);
+
+if (ret != 0) {
+free_domain_info(domain_info);
+}
+
return ret;
}
diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c
b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c
index
d5a2f604c4a61bda04dd026ace4b53ea5c2c3645..f36878c37a7fca2b06db70a4f7694ee53d7c9422
100644
--- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c
+++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c
@@ -170,13 +170,15 @@ static int ipa_extdom_init_ctx(Slapi_PBlock *pb, struct
ipa_extdom_ctx **_ctx)
slapi_pblock_get(pb, SLAPI_PLUGIN_CONFIG_ENTRY, e);
if (!e) {
LOG_FATAL(Plugin configuration not found!\n);
-return -1;
+ret = -1;
+goto done;
}
ctx-base_dn = slapi_entry_attr_get_charptr(e, nsslapd-basedn);
if (!ctx-base_dn) {
LOG_FATAL(Base DN not found in plugin configuration not found!\n);
-return -1;
+ret = -1;
+goto done;
}
diff --git a/daemons/ipa-slapi-plugins/ipa-range-check/ipa_range_check.c
b/daemons/ipa-slapi-plugins/ipa-range-check/ipa_range_check.c
index
499e54a9c4a4c9134a231c0cd09e700390565a14..82479bec8184adb28cbf641d8ff019de64099818
100644
--- a/daemons/ipa-slapi-plugins/ipa-range-check/ipa_range_check.c
+++ b/daemons/ipa-slapi-plugins/ipa-range-check/ipa_range_check.c
@@