Commit c890b488 authored by Heikki Linnakangas's avatar Heikki Linnakangas

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.
parent e6df2e1b
...@@ -858,6 +858,7 @@ HandleCopyStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline, ...@@ -858,6 +858,7 @@ HandleCopyStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline,
if (!close_walfile(basedir, partial_suffix, blockpos)) if (!close_walfile(basedir, partial_suffix, blockpos))
{ {
/* Error message written in close_walfile() */ /* Error message written in close_walfile() */
PQclear(res);
goto error; goto error;
} }
if (PQresultStatus(res) == PGRES_COPY_IN) if (PQresultStatus(res) == PGRES_COPY_IN)
...@@ -867,6 +868,7 @@ HandleCopyStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline, ...@@ -867,6 +868,7 @@ HandleCopyStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline,
fprintf(stderr, fprintf(stderr,
_("%s: could not send copy-end packet: %s"), _("%s: could not send copy-end packet: %s"),
progname, PQerrorMessage(conn)); progname, PQerrorMessage(conn));
PQclear(res);
goto error; goto error;
} }
res = PQgetResult(conn); res = PQgetResult(conn);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment