diff --git a/src/bin/pg_basebackup/streamutil.c b/src/bin/pg_basebackup/streamutil.c
index 0ed6144..3ff57d5 100644
--- a/src/bin/pg_basebackup/streamutil.c
+++ b/src/bin/pg_basebackup/streamutil.c
@@ -420,6 +420,7 @@ DropReplicationSlot(PGconn *conn, const char *slot_name)
 		return false;
 	}
 
+	destroyPQExpBuffer(query);
 	PQclear(res);
 	return true;
 }
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 1258cef..0e036b8 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -6660,6 +6660,7 @@ getTransforms(Archive *fout, int *numTransforms)
 			appendPQExpBuffer(&namebuf, "%s %s",
 							  typeInfo->dobj.name, lanname);
 		transforminfo[i].dobj.name = namebuf.data;
+		free(lanname);
 	}
 
 	PQclear(res);
@@ -15735,6 +15736,7 @@ getExtensionMembership(Archive *fout, DumpOptions *dopt, ExtensionInfo extinfo[]
 		addObjectDependency(&contable->dataObj->dobj,
 							reftable->dataObj->dobj.dumpId);
 	}
+	PQclear(res);
 	destroyPQExpBuffer(query);
 }
 
diff --git a/src/bin/pg_rewind/libpq_fetch.c b/src/bin/pg_rewind/libpq_fetch.c
index 05aa133..abefed8 100644
--- a/src/bin/pg_rewind/libpq_fetch.c
+++ b/src/bin/pg_rewind/libpq_fetch.c
@@ -122,6 +122,7 @@ libpqGetCurrentXlogInsertLocation(void)
 		pg_fatal("unrecognized result \"%s\" for current XLOG insert location\n", val);
 
 	result = ((uint64) hi) << 32 | lo;
+	pg_free(val);
 
 	return result;
 }
@@ -201,6 +202,7 @@ libpqProcessFileList(void)
 
 		process_source_file(path, type, filesize, link_target);
 	}
+	PQclear(res);
 }
 
 /*----
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index ca6d003..85d9317 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -412,6 +412,7 @@ vacuum_one_database(const char *dbname, vacuumingOptions *vacopts,
 			concurrentCons = ntups;
 		if (concurrentCons <= 1)
 			parallel = false;
+		PQclear(res);
 	}
 
 	/*
