X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_db_query.c;h=91fc1421860a03987104b2c89c456fabf0b01fda;hb=441e067a2d5a294517bd87ca45c87fd67377d2cf;hp=d2b811721d0d6ef2d40453854f87fde4b3c8bf4b;hpb=40aabf444e124f40603021821e98bcc40c4aaa0e;p=collectd.git diff --git a/src/utils_db_query.c b/src/utils_db_query.c index d2b81172..91fc1421 100644 --- a/src/utils_db_query.c +++ b/src/utils_db_query.c @@ -142,7 +142,7 @@ static int udb_config_add_string (char ***ret_array, /* {{{ */ } array_len = *ret_array_len; - array = (char **) realloc (*ret_array, + array = realloc (*ret_array, sizeof (char *) * (array_len + ci->values_num)); if (array == NULL) { @@ -204,10 +204,10 @@ static int udb_result_submit (udb_result_t *r, /* {{{ */ assert (((size_t) r_area->ds->ds_num) == r->values_num); assert (r->values_num > 0); - vl.values = (value_t *) calloc (r->values_num, sizeof (value_t)); + vl.values = calloc (r->values_num, sizeof (*vl.values)); if (vl.values == NULL) { - ERROR ("db query utils: malloc failed."); + ERROR ("db query utils: calloc failed."); return (-1); } vl.values_len = r_area->ds->ds_num; @@ -221,6 +221,7 @@ static int udb_result_submit (udb_result_t *r, /* {{{ */ ERROR ("db query utils: udb_result_submit: Parsing `%s' as %s failed.", value_str, DS_TYPE_TO_STRING (r_area->ds->ds[i].type)); errno = EINVAL; + free (vl.values); return (-1); } } @@ -234,7 +235,7 @@ static int udb_result_submit (udb_result_t *r, /* {{{ */ sstrncpy (vl.type, r->type, sizeof (vl.type)); /* Set vl.type_instance {{{ */ - if (r->instances_num <= 0) + if (r->instances_num == 0) { if (r->instance_prefix == NULL) vl.type_instance[0] = 0; @@ -390,7 +391,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */ = (size_t *) calloc (r->instances_num, sizeof (size_t)); if (prep_area->instances_pos == NULL) { - ERROR ("db query utils: udb_result_prepare_result: malloc failed."); + ERROR ("db query utils: udb_result_prepare_result: calloc failed."); BAIL_OUT (-ENOMEM); } @@ -398,7 +399,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */ = (char **) calloc (r->instances_num, sizeof (char *)); if (prep_area->instances_buffer == NULL) { - ERROR ("db query utils: udb_result_prepare_result: malloc failed."); + ERROR ("db query utils: udb_result_prepare_result: calloc failed."); BAIL_OUT (-ENOMEM); } } /* if (r->instances_num > 0) */ @@ -407,7 +408,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */ = (size_t *) calloc (r->values_num, sizeof (size_t)); if (prep_area->values_pos == NULL) { - ERROR ("db query utils: udb_result_prepare_result: malloc failed."); + ERROR ("db query utils: udb_result_prepare_result: calloc failed."); BAIL_OUT (-ENOMEM); } @@ -415,7 +416,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */ = (char **) calloc (r->values_num, sizeof (char *)); if (prep_area->values_buffer == NULL) { - ERROR ("db query utils: udb_result_prepare_result: malloc failed."); + ERROR ("db query utils: udb_result_prepare_result: calloc failed."); BAIL_OUT (-ENOMEM); } @@ -423,7 +424,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */ = (size_t *) calloc (r->metadata_num, sizeof (size_t)); if (prep_area->metadata_pos == NULL) { - ERROR ("db query utils: udb_result_prepare_result: malloc failed."); + ERROR ("db query utils: udb_result_prepare_result: calloc failed."); BAIL_OUT (-ENOMEM); } @@ -431,7 +432,7 @@ static int udb_result_prepare_result (udb_result_t const *r, /* {{{ */ = (char **) calloc (r->metadata_num, sizeof (char *)); if (prep_area->metadata_buffer == NULL) { - ERROR ("db query utils: udb_result_prepare_result: malloc failed."); + ERROR ("db query utils: udb_result_prepare_result: calloc failed."); BAIL_OUT (-ENOMEM); } @@ -550,13 +551,12 @@ static int udb_result_create (const char *query_name, /* {{{ */ ci->values_num, (ci->values_num == 1) ? "" : "s"); } - r = (udb_result_t *) malloc (sizeof (*r)); + r = calloc (1, sizeof (*r)); if (r == NULL) { - ERROR ("db query utils: malloc failed."); + ERROR ("db query utils: calloc failed."); return (-1); } - memset (r, 0, sizeof (*r)); r->type = NULL; r->instance_prefix = NULL; r->instances = NULL; @@ -638,7 +638,7 @@ static int udb_result_create (const char *query_name, /* {{{ */ /* * Query private functions */ -void udb_query_free_one (udb_query_t *q) /* {{{ */ +static void udb_query_free_one (udb_query_t *q) /* {{{ */ { if (q == NULL) return; @@ -678,13 +678,12 @@ int udb_query_create (udb_query_t ***ret_query_list, /* {{{ */ return (-1); } - q = (udb_query_t *) malloc (sizeof (*q)); + q = calloc (1, sizeof (*q)); if (q == NULL) { - ERROR ("db query utils: malloc failed."); + ERROR ("db query utils: calloc failed."); return (-1); } - memset (q, 0, sizeof (*q)); q->min_version = 0; q->max_version = UINT_MAX; @@ -752,7 +751,7 @@ int udb_query_create (udb_query_t ***ret_query_list, /* {{{ */ { udb_query_t **temp; - temp = (udb_query_t **) realloc (query_list, + temp = realloc (query_list, sizeof (*query_list) * (query_list_len + 1)); if (temp == NULL) { @@ -817,7 +816,7 @@ int udb_query_pick_from_list_by_name (const char *name, /* {{{ */ continue; tmp_list_len = *dst_list_len; - tmp_list = (udb_query_t **) realloc (*dst_list, (tmp_list_len + 1) + tmp_list = realloc (*dst_list, (tmp_list_len + 1) * sizeof (udb_query_t *)); if (tmp_list == NULL) { @@ -1072,17 +1071,16 @@ udb_query_allocate_preparation_area (udb_query_t *q) /* {{{ */ udb_result_preparation_area_t **next_r_area; udb_result_t *r; - q_area = malloc (sizeof (*q_area)); + q_area = calloc (1, sizeof (*q_area)); if (q_area == NULL) return NULL; - memset (q_area, 0, sizeof (*q_area)); next_r_area = &q_area->result_prep_areas; for (r = q->results; r != NULL; r = r->next) { udb_result_preparation_area_t *r_area; - r_area = malloc (sizeof (*r_area)); + r_area = calloc (1, sizeof (*r_area)); if (r_area == NULL) { udb_result_preparation_area_t *a = q_area->result_prep_areas; @@ -1098,8 +1096,6 @@ udb_query_allocate_preparation_area (udb_query_t *q) /* {{{ */ return NULL; } - memset (r_area, 0, sizeof (*r_area)); - *next_r_area = r_area; next_r_area = &r_area->next; }