From d1a925bf02d1f4cb4d4f736ef32b4c821dec976d Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Mon, 30 Sep 2024 11:16:15 -0400
Subject: [PATCH] Fix issues reported by Coverity.

---
 src/bin/pg_verifybackup/astreamer_verify.c | 2 +-
 src/bin/pg_verifybackup/pg_verifybackup.c  | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/bin/pg_verifybackup/astreamer_verify.c b/src/bin/pg_verifybackup/astreamer_verify.c
index 57072fdfe04..eb17dfbd95f 100644
--- a/src/bin/pg_verifybackup/astreamer_verify.c
+++ b/src/bin/pg_verifybackup/astreamer_verify.c
@@ -341,7 +341,7 @@ member_copy_control_data(astreamer *streamer, astreamer_member *member,
 	 * be PG_CONTROL_FILE_SIZE, but the part that fits in our buffer is
 	 * shorter, just sizeof(ControlFileData).
 	 */
-	if (mystreamer->control_file_bytes <= sizeof(ControlFileData))
+	if (mystreamer->control_file_bytes < sizeof(ControlFileData))
 	{
 		int			remaining;
 
diff --git a/src/bin/pg_verifybackup/pg_verifybackup.c b/src/bin/pg_verifybackup/pg_verifybackup.c
index a9d41a6b838..32467a1ba09 100644
--- a/src/bin/pg_verifybackup/pg_verifybackup.c
+++ b/src/bin/pg_verifybackup/pg_verifybackup.c
@@ -929,9 +929,12 @@ precheck_tar_backup_file(verifier_context *context, char *relpath,
 		 * result is 0, or if the value is too large to be a valid OID.
 		 */
 		if (suffix == NULL || num <= 0 || num > OID_MAX)
+		{
 			report_backup_error(context,
 								"file \"%s\" is not expected in a tar format backup",
 								relpath);
+			return;
+		}
 		tblspc_oid = (Oid) num;
 	}
 
@@ -1014,6 +1017,8 @@ verify_tar_file(verifier_context *context, char *relpath, char *fullpath,
 		progress_report(false);
 	}
 
+	pg_free(buffer);
+
 	if (rc < 0)
 		report_backup_error(context, "could not read file \"%s\": %m",
 							relpath);
-- 
2.39.3 (Apple Git-145)

