From c890b488063e23f12b5ab01c9a6d254a034fcea2 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 ca5c7f55bd..a88457fb28 100644 --- a/src/bin/pg_basebackup/receivelog.c +++ b/src/bin/pg_basebackup/receivelog.c @@ -858,6 +858,7 @@ HandleCopyStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline, if (!close_walfile(basedir, partial_suffix, blockpos)) { /* Error message written in close_walfile() */ + PQclear(res); goto error; } if (PQresultStatus(res) == PGRES_COPY_IN) @@ -867,6 +868,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);