From: Florian Forster Date: Sat, 21 Jan 2012 17:21:46 +0000 (+0100) Subject: oracle plugin: Fix a memory leak. X-Git-Tag: collectd-4.10.5~1 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=77460335ec305aa4fbd8218c6e5c1c849fbef9c0;p=collectd.git oracle plugin: Fix a memory leak. Parameters must be freed using OCIDescriptorFree. D'oh! Thanks to Rena Vetterling for helping me hunt down this problem! Change-Id: Ic374ae13085c8d2afbdf9a3c0ceef92b485e7723 --- diff --git a/src/oracle.c b/src/oracle.c index 145fc1f4..1332da27 100644 --- a/src/oracle.c +++ b/src/oracle.c @@ -568,11 +568,15 @@ static int o_read_database_query (o_database_t *db, /* {{{ */ &column_name, &column_name_length, OCI_ATTR_NAME, oci_error); if (status != OCI_SUCCESS) { + OCIDescriptorFree (oci_param, OCI_DTYPE_PARAM); o_report_error ("o_read_database_query", "OCIAttrGet (OCI_ATTR_NAME)", oci_error); continue; } + OCIDescriptorFree (oci_param, OCI_DTYPE_PARAM); + oci_param = NULL; + /* Copy the name to column_names. Warning: The ``string'' returned by OCI * may not be null terminated! */ memset (column_names[i], 0, DATA_MAX_NAME_LEN); @@ -750,6 +754,7 @@ static int o_shutdown (void) /* {{{ */ } OCIHandleFree (oci_env, OCI_HTYPE_ENV); + oci_env = NULL; udb_query_free (queries, queries_num); queries = NULL;