v34-0004-Free-malloc-d-memory-if-no-variables-could-be-re.patch

application/octet-stream

Filename: v34-0004-Free-malloc-d-memory-if-no-variables-could-be-re.patch
Type: application/octet-stream
Part: 3
Message: RE: speed up a logical replica setup

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch v34-0004
Subject: Free malloc'd memory if no variables could be referred the region
File+
src/bin/pg_basebackup/pg_createsubscriber.c 6 0
From 8f77e86f29f5bdc0365a83abced96b2ab746747e Mon Sep 17 00:00:00 2001
From: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Date: Mon, 25 Mar 2024 07:38:06 +0000
Subject: [PATCH v34 4/4] Free malloc'd memory if no variables could be
 referred the region

---
 src/bin/pg_basebackup/pg_createsubscriber.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/bin/pg_basebackup/pg_createsubscriber.c b/src/bin/pg_basebackup/pg_createsubscriber.c
index 1139c15896..392eec11b0 100644
--- a/src/bin/pg_basebackup/pg_createsubscriber.c
+++ b/src/bin/pg_basebackup/pg_createsubscriber.c
@@ -656,6 +656,7 @@ modify_subscriber_sysid(const struct CreateSubscriberOptions *opt)
 			pg_fatal("subscriber failed to change system identifier: exit code: %d", rc);
 	}
 
+	pg_free(cmd_str);
 	pg_free(cf);
 }
 
@@ -762,6 +763,7 @@ setup_publisher(struct LogicalRepInfo *dbinfo)
 			exit(1);
 
 		disconnect_database(conn, false);
+		pg_free(genname);
 	}
 
 	return lsn;
@@ -910,6 +912,7 @@ check_publisher(const struct LogicalRepInfo *dbinfo)
 			pg_log_info("primary has replication slot \"%s\"",
 						primary_slot_name);
 
+		destroyPQExpBuffer(str);
 		PQclear(res);
 	}
 
@@ -939,6 +942,7 @@ check_publisher(const struct LogicalRepInfo *dbinfo)
 		failed = true;
 	}
 
+	pg_free(wal_level);
 	return failed;
 }
 
@@ -1135,6 +1139,7 @@ setup_recovery(const struct LogicalRepInfo *dbinfo, const char *datadir, const c
 	disconnect_database(conn, false);
 
 	pg_log_debug("recovery parameters:\n%s", recoveryconfcontents->data);
+	destroyPQExpBuffer(recoveryconfcontents);
 }
 
 /*
@@ -1330,6 +1335,7 @@ stop_standby_server(const char *datadir)
 	pg_ctl_status(pg_ctl_cmd, rc);
 	standby_running = false;
 	pg_log_info("server was stopped");
+	pg_free(pg_ctl_cmd);
 }
 
 /*
-- 
2.43.0