From 99b5ff2eaf4c64c6ac8204f622075d7f01ff4cc2 Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Fri, 7 Jun 2019 12:44:06 +0300
Subject: [PATCH] Fix copy-pasto in freeing memory on error in vacuumlo.

It's harmless to call PQfreemem() with a NULL argument, so the only
consequence was that if allocating 'schema' failed, but allocating 'table'
or 'field' succeeded, we would leak a bit of memory. That's highly
unlikely to happen, so this is just academical, but let's get it right.

Per bug #15838 from Timur Birsh. Backpatch back to 9.5, where the
PQfreemem() calls were introduced.

Discussion: https://www.postgresql.org/message-id/15838-3221652c72c5e69d@postgresql.org
---
 contrib/vacuumlo/vacuumlo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/vacuumlo/vacuumlo.c b/contrib/vacuumlo/vacuumlo.c
index ce5489f370b..0f79b139cfb 100644
--- a/contrib/vacuumlo/vacuumlo.c
+++ b/contrib/vacuumlo/vacuumlo.c
@@ -240,9 +240,9 @@ vacuumlo(const char *database, const struct _param * param)
 			PQfinish(conn);
 			if (schema != NULL)
 				PQfreemem(schema);
-			if (schema != NULL)
+			if (table != NULL)
 				PQfreemem(table);
-			if (schema != NULL)
+			if (field != NULL)
 				PQfreemem(field);
 			return -1;
 		}
-- 
GitLab