Remove a couple of strerror() calls
authorPeter Eisentraut <peter@eisentraut.org>
Wed, 4 Sep 2024 12:45:31 +0000 (14:45 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Wed, 4 Sep 2024 12:45:31 +0000 (14:45 +0200)
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.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/daa87d79-c044-46c4-8458-8d77241ed7b0%40eisentraut.org

src/backend/libpq/hba.c

index 75d588e36a10eca9c863ad02eee1e5d9bf8af8cf..2fd96a71294890cb9369dc1c656807537a9b75bd 100644 (file)
@@ -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;
                }