From 329de9fa983debc941ebd79f335f2574b72a3694 Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Mon, 5 May 2014 16:20:12 +0300
Subject: [PATCH] Don't leak memory after connection aborts in pg_recvlogical.

Andres Freund, noticed by coverity.
---
 src/bin/pg_basebackup/pg_recvlogical.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/bin/pg_basebackup/pg_recvlogical.c b/src/bin/pg_basebackup/pg_recvlogical.c
index 8141ba31f9d..fe902cf9691 100644
--- a/src/bin/pg_basebackup/pg_recvlogical.c
+++ b/src/bin/pg_basebackup/pg_recvlogical.c
@@ -547,9 +547,6 @@ StreamLog(void)
 	}
 	PQclear(res);
 
-	if (copybuf != NULL)
-		PQfreemem(copybuf);
-
 	if (outfd != -1 && strcmp(outfile, "-") != 0)
 	{
 		int64 t = feGetCurrentTimestamp();
@@ -563,6 +560,11 @@ StreamLog(void)
 	}
 	outfd = -1;
 error:
+	if (copybuf != NULL)
+	{
+		PQfreemem(copybuf);
+		copybuf = NULL;
+	}
 	destroyPQExpBuffer(query);
 	PQfinish(conn);
 	conn = NULL;
-- 
GitLab