From: Sebastian Harl Date: Thu, 29 Nov 2012 08:09:22 +0000 (+0100) Subject: patches: Added postgresql_writer_memleak.dpatch. X-Git-Tag: collectd-5.2.0-2~1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=d7f0abf3b16db05d1fa4ee27d9539e2570ac053f;p=pkg-collectd.git patches: Added postgresql_writer_memleak.dpatch. … fixing a memory leak in the PostgreSQL writer implementation. --- diff --git a/debian/changelog b/debian/changelog index f7d674b..69e3433 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +collectd (5.2.0-2) UNRELEASED; urgency=low + + * debian/patches: + - Added postgresql_writer_memleak.dpatch fixing a memory leak in the + PostgreSQL writer implementation. + + -- Sebastian Harl Thu, 29 Nov 2012 09:08:21 +0100 + collectd (5.2.0-1) experimental; urgency=low * New upstream release: diff --git a/debian/patches/00list b/debian/patches/00list index 23aacf6..c3bdb36 100644 --- a/debian/patches/00list +++ b/debian/patches/00list @@ -2,3 +2,4 @@ rrd_filter_path.dpatch collection_conf_path.dpatch myplugin_includes.dpatch bts559801_plugin_find_fix.dpatch +postgresql_writer_memleak.dpatch diff --git a/debian/patches/myplugin_includes.dpatch b/debian/patches/myplugin_includes.dpatch old mode 100644 new mode 100755 diff --git a/debian/patches/postgresql_writer_memleak.dpatch b/debian/patches/postgresql_writer_memleak.dpatch new file mode 100755 index 0000000..78bfd76 --- /dev/null +++ b/debian/patches/postgresql_writer_memleak.dpatch @@ -0,0 +1,40 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## postgresql_writer_memleak.dpatch by Sebastian Harl +## +## DP: postgresql plugin: Fixed a memory leak occurring on every write. + +@DPATCH@ + +diff a/src/postgresql.c b/src/postgresql.c +--- 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; + } +