From: Sebastian Harl Date: Thu, 29 Nov 2012 08:01:37 +0000 (+0100) Subject: postgresql plugin: Fixed a memory leak occurring on every (successful) write. X-Git-Tag: collectd-5.2.1~8^2 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=a8c7622252cf8fd8467a7eb9c800060d1d1c27d1;p=collectd.git postgresql plugin: Fixed a memory leak occurring on every (successful) write. --- diff --git a/src/postgresql.c b/src/postgresql.c index 15d4666b..6c9ab44e 100644 --- a/src/postgresql.c +++ b/src/postgresql.c @@ -900,10 +900,10 @@ static int c_psql_write (const data_set_t *ds, const value_list_t *vl, if ((PGRES_COMMAND_OK != PQresultStatus (res)) && (PGRES_TUPLES_OK != PQresultStatus (res))) { + PQclear (res); + if ((CONNECTION_OK != PQstatus (db->conn)) && (0 == c_psql_check_connection (db))) { - PQclear (res); - /* try again */ res = PQexecParams (db->conn, writer->statement, STATIC_ARRAY_SIZE (params), NULL, @@ -912,6 +912,7 @@ static int c_psql_write (const data_set_t *ds, const value_list_t *vl, if ((PGRES_COMMAND_OK == PQresultStatus (res)) || (PGRES_TUPLES_OK == PQresultStatus (res))) { + PQclear (res); success = 1; continue; } @@ -932,6 +933,8 @@ static int c_psql_write (const data_set_t *ds, const value_list_t *vl, pthread_mutex_unlock (&db->db_lock); return -1; } + + PQclear (res); success = 1; }