vl.meta = meta_data_create();
if (vl.meta == NULL) {
ERROR("db query utils:: meta_data_create failed.");
+ free(vl.values);
return -ENOMEM;
}
ERROR("db query utils:: meta_data_add_string failed.");
meta_data_destroy(vl.meta);
vl.meta = NULL;
+ free(vl.values);
return status;
}
}
if ((r == NULL) || (prep_area == NULL))
return -EINVAL;
+#if COLLECT_DEBUG
+ assert(prep_area->ds == NULL);
+ assert(prep_area->instances_pos == NULL);
+ assert(prep_area->values_pos == NULL);
+ assert(prep_area->metadata_pos == NULL);
+ assert(prep_area->instances_buffer == NULL);
+ assert(prep_area->values_buffer == NULL);
+ assert(prep_area->metadata_buffer == NULL);
+#endif
+
#define BAIL_OUT(status) \
- prep_area->ds = NULL; \
- sfree(prep_area->instances_pos); \
- sfree(prep_area->values_pos); \
- sfree(prep_area->metadata_pos); \
- sfree(prep_area->instances_buffer); \
- sfree(prep_area->values_buffer); \
- sfree(prep_area->metadata_buffer); \
+ udb_result_finish_result(r, prep_area); \
return (status)
- /* Make sure previous preparations are cleaned up. */
- udb_result_finish_result(r, prep_area);
- prep_area->instances_pos = NULL;
- prep_area->values_pos = NULL;
- prep_area->metadata_pos = NULL;
-
/* Read `ds' and check number of values {{{ */
prep_area->ds = plugin_get_ds(r->type);
if (prep_area->ds == NULL) {
if (prep_area->ds->ds_num != r->values_num) {
ERROR("db query utils: udb_result_prepare_result: The type `%s' "
- "requires exactly %zu value%s, but the configuration specifies %zu.",
+ "requires exactly %" PRIsz
+ " value%s, but the configuration specifies %" PRIsz ".",
r->type, prep_area->ds->ds_num,
(prep_area->ds->ds_num == 1) ? "" : "s", r->values_num);
BAIL_OUT(-1);
do {
for (size_t i = 0; i < prep_area->column_num; i++) {
DEBUG("db query utils: udb_query_handle_result (%s, %s): "
- "column[%zu] = %s;",
+ "column[%" PRIsz "] = %s;",
prep_area->db_name, q->name, i, column_values[i]);
}
} while (0);
if ((q == NULL) || (prep_area == NULL))
return -EINVAL;
- udb_query_finish_result(q, prep_area);
+#if COLLECT_DEBUG
+ assert(prep_area->column_num == 0);
+ assert(prep_area->host == NULL);
+ assert(prep_area->plugin == NULL);
+ assert(prep_area->db_name == NULL);
+ assert(prep_area->interval == 0);
+#endif
prep_area->column_num = column_num;
prep_area->host = strdup(host);
do {
for (size_t i = 0; i < column_num; i++) {
DEBUG("db query utils: udb_query_prepare_result: "
- "query = %s; column[%zu] = %s;",
+ "query = %s; column[%" PRIsz "] = %s;",
q->name, i, column_names[i]);
}
} while (0);