From a13b47a59ffce6f3c13c8b777738a3aab1db10d3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 20 May 2018 18:06:00 -0400 Subject: [PATCH] Fix unportable usage of printf("%m"). While glibc's version of printf accepts %m, most others do not; to be portable, we have to do it the hard way with strerror(errno). pg_verify_checksums evidently did not get that memo. Noted while fooling around with NetBSD-current, which generates a compiler warning for this mistake. --- src/bin/pg_verify_checksums/pg_verify_checksums.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/bin/pg_verify_checksums/pg_verify_checksums.c b/src/bin/pg_verify_checksums/pg_verify_checksums.c index b065d0bb89..845d5aba27 100644 --- a/src/bin/pg_verify_checksums/pg_verify_checksums.c +++ b/src/bin/pg_verify_checksums/pg_verify_checksums.c @@ -85,7 +85,8 @@ scan_file(char *fn, int segmentno) f = open(fn, 0); if (f < 0) { - fprintf(stderr, _("%s: could not open file \"%s\": %m\n"), progname, fn); + fprintf(stderr, _("%s: could not open file \"%s\": %s\n"), + progname, fn, strerror(errno)); exit(1); } @@ -137,8 +138,8 @@ scan_directory(char *basedir, char *subdir) dir = opendir(path); if (!dir) { - fprintf(stderr, _("%s: could not open directory \"%s\": %m\n"), - progname, path); + fprintf(stderr, _("%s: could not open directory \"%s\": %s\n"), + progname, path, strerror(errno)); exit(1); } while ((de = readdir(dir)) != NULL) @@ -152,8 +153,8 @@ scan_directory(char *basedir, char *subdir) snprintf(fn, sizeof(fn), "%s/%s", path, de->d_name); if (lstat(fn, &st) < 0) { - fprintf(stderr, _("%s: could not stat file \"%s\": %m\n"), - progname, fn); + fprintf(stderr, _("%s: could not stat file \"%s\": %s\n"), + progname, fn, strerror(errno)); exit(1); } if (S_ISREG(st.st_mode)) -- 2.40.0