summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2010-07-26 11:45:36 -0500
committerNoriko Hosoi <nhosoi@redhat.com>2010-08-19 17:00:27 -0700
commitcfe6c5216b13307a9f751f60d779276dff63b042 (patch)
treebbd87149e452c9cc72f6452c17e621a6b00fafd4
parentfb4aba33e0779f4d7d4b5752528e5b8054be93ec (diff)
Bug 617630 - fix coverify Defect Type: Resource leaks issues CID 12052 - 12093
https://bugzilla.redhat.com/show_bug.cgi?id=617630 Resolves: bug 617630 Bug description: fix coverify Defect Type: Resource leaks issues CID 12078 description: index_addordel_values_ext_sv() has been modified to release keys before going out of scope. index_buffer_init_internal() has been modified to release handle when error occurs.
-rw-r--r--ldap/servers/slapd/back-ldbm/index.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/ldap/servers/slapd/back-ldbm/index.c b/ldap/servers/slapd/back-ldbm/index.c
index da22648c..e1a8ecf4 100644
--- a/ldap/servers/slapd/back-ldbm/index.c
+++ b/ldap/servers/slapd/back-ldbm/index.c
@@ -114,10 +114,12 @@ index_buffer_init_internal(size_t idl_size,
index_buffer_bin *bins = NULL;
size_t i = 0;
size_t byte_range = 0;
+ int rc = 0;
index_buffer_handle *handle = (index_buffer_handle *) slapi_ch_calloc(1,sizeof(index_buffer_handle));
if (NULL == handle) {
- return -1;
+ rc = -1;
+ goto error;
}
handle->idl_size = idl_size;
handle->flags = flags;
@@ -136,11 +138,18 @@ index_buffer_init_internal(size_t idl_size,
handle->buffer_size = bin_count;
bins = (index_buffer_bin *)slapi_ch_calloc(bin_count, sizeof(index_buffer_bin));
if (NULL == bins) {
- return -1;
+ rc = -1;
+ goto error;
}
handle->bins = bins;
*h = (void*) handle;
- return 0;
+ goto done;
+
+error:
+ slapi_ch_free((void**)&handle);
+
+done:
+ return rc;
}
int index_buffer_init(size_t size,int flags,void **h)
@@ -1973,6 +1982,7 @@ index_addordel_values_ext_sv(
if ( err != 0 )
{
ldbm_nasty(errmsg, 1260, err);
+ slapi_ch_free(&keys);
goto bad;
}
}
@@ -1981,6 +1991,7 @@ index_addordel_values_ext_sv(
* But, for simplicity, we destroy it now:
*/
destroy_matchrule_indexer(pb);
+ slapi_ch_free(&keys);
}
}
}