Merge branch 'collectd-5.4' into collectd-5.5
[collectd.git] / src / postgresql.c
index 73d590a..23c4af3 100644 (file)
@@ -1045,17 +1045,19 @@ static int config_query_param_add (udb_query_t *q, oconfig_item_t *ci)
 
        data = udb_query_get_user_data (q);
        if (NULL == data) {
-               data = (c_psql_user_data_t *) malloc (sizeof (*data));
+               data = malloc (sizeof (*data));
                if (NULL == data) {
                        log_err ("Out of memory.");
                        return -1;
                }
                memset (data, 0, sizeof (*data));
                data->params = NULL;
+               data->params_num = 0;
+
+               udb_query_set_user_data (q, data);
        }
 
-       tmp = (c_psql_param_t *) realloc (data->params,
-                       (data->params_num + 1) * sizeof (c_psql_param_t));
+       tmp = realloc (data->params, (data->params_num + 1) * sizeof (*data->params));
        if (NULL == tmp) {
                log_err ("Out of memory.");
                return -1;
@@ -1079,8 +1081,6 @@ static int config_query_param_add (udb_query_t *q, oconfig_item_t *ci)
        }
 
        data->params_num++;
-       udb_query_set_user_data (q, data);
-
        return (0);
 } /* config_query_param_add */
 
@@ -1164,7 +1164,7 @@ static int c_psql_config_writer (oconfig_item_t *ci)
 
        writers = tmp;
        writer  = writers + writers_num;
-       ++writers_num;
+       memset (writer, 0, sizeof (*writer));
 
        writer->name = sstrdup (ci->values[0].value.string);
        writer->statement = NULL;
@@ -1184,10 +1184,10 @@ static int c_psql_config_writer (oconfig_item_t *ci)
        if (status != 0) {
                sfree (writer->statement);
                sfree (writer->name);
-               sfree (writer);
                return status;
        }
 
+       ++writers_num;
        return 0;
 } /* c_psql_config_writer */