0001-Remove-a-couple-of-strerror-calls.patch

text/plain

Filename: 0001-Remove-a-couple-of-strerror-calls.patch
Type: text/plain
Part: 0
Message: thread-safety: strerror_r()

Patch

Format: format-patch
Series: patch 0001
Subject: Remove a couple of strerror() calls
File+
src/backend/libpq/hba.c 8 4
From c2ce542d61d5e86ab138b72e2e0d74fdac589f04 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 2 Sep 2024 11:02:22 +0200
Subject: [PATCH 1/2] Remove a couple of strerror() calls

Change to using %m in the error message string.  We need to be a bit
careful here to preserve errno until we need to print it.

This change avoids the use of not-thread-safe strerror() and unifies
some error message strings, and maybe makes the code appear more
consistent.
---
 src/backend/libpq/hba.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index 75d588e36a1..2fd96a71294 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -624,8 +624,11 @@ open_auth_file(const char *filename, int elevel, int depth,
 				 errmsg("could not open file \"%s\": %m",
 						filename)));
 		if (err_msg)
-			*err_msg = psprintf("could not open file \"%s\": %s",
-								filename, strerror(save_errno));
+		{
+			errno = save_errno;
+			*err_msg = psprintf("could not open file \"%s\": %m",
+								filename);
+		}
 		/* the caller may care about some specific errno */
 		errno = save_errno;
 		return NULL;
@@ -762,8 +765,9 @@ tokenize_auth_file(const char *filename, FILE *file, List **tok_lines,
 			ereport(elevel,
 					(errcode_for_file_access(),
 					 errmsg("could not read file \"%s\": %m", filename)));
-			err_msg = psprintf("could not read file \"%s\": %s",
-							   filename, strerror(save_errno));
+			errno = save_errno;
+			err_msg = psprintf("could not read file \"%s\": %m",
+							   filename);
 			break;
 		}
 
-- 
2.46.0