diff options
| author | Endi S. Dewata <edewata@redhat.com> | 2010-07-26 11:45:36 -0500 |
|---|---|---|
| committer | Noriko Hosoi <nhosoi@redhat.com> | 2010-08-19 17:00:27 -0700 |
| commit | cfe6c5216b13307a9f751f60d779276dff63b042 (patch) | |
| tree | bbd87149e452c9cc72f6452c17e621a6b00fafd4 | |
| parent | fb4aba33e0779f4d7d4b5752528e5b8054be93ec (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.c | 17 |
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); } } } |
