From 0ad78306be6bd3db0575b0d046e4cbe7f50635b8 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Mon, 12 May 2014 10:17:40 +0300 Subject: [PATCH] Free PQresult on error in pg_receivexlog. The leak is fairly small and rare, but a leak nevertheless. Per Coverity report. Backpatch to 9.2, where pg_receivexlog was added. pg_basebackup shares the code, but it always exits on error, so there is no real leak. --- src/bin/pg_basebackup/receivelog.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c index aca1a9e8b1a..ded9b70dc21 100644 --- a/src/bin/pg_basebackup/receivelog.c +++ b/src/bin/pg_basebackup/receivelog.c @@ -912,6 +912,7 @@ HandleCopyStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline, if (!close_walfile(basedir, partial_suffix)) { /* Error message written in close_walfile() */ + PQclear(res); goto error; } if (PQresultStatus(res) == PGRES_COPY_IN) @@ -921,6 +922,7 @@ HandleCopyStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline, fprintf(stderr, _("%s: could not send copy-end packet: %s"), progname, PQerrorMessage(conn)); + PQclear(res); goto error; } res = PQgetResult(conn); -- 2.39.5