Parameters must be freed using OCIDescriptorFree. D'oh!
Thanks to Rena Vetterling for helping me hunt down this problem!
Change-Id: Ic374ae13085c8d2afbdf9a3c0ceef92b485e7723
&column_name, &column_name_length, OCI_ATTR_NAME, oci_error);
if (status != OCI_SUCCESS)
{
&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;
}
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);
/* 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);
}
OCIHandleFree (oci_env, OCI_HTYPE_ENV);
}
OCIHandleFree (oci_env, OCI_HTYPE_ENV);
udb_query_free (queries, queries_num);
queries = NULL;
udb_query_free (queries, queries_num);
queries = NULL;