From: | Florian Weimer <fw(at)deneb(dot)enyo(dot)de> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Cc: | Andrew Gierth <rhodiumtoad(at)postgresql(dot)org> |
Subject: | Ignoring symlinks when recovering time zone identifiers in initdb |
Date: | 2025-09-14 07:49:04 |
Message-ID: | 87v7llzd73.fsf@mid.deneb.enyo.de |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
There's a story making the rounds that the removal of the
/usr/share/zoneinfo/US/Pacific etc. in Debian broke installations.
These identifiers should not be used, but they may get picked by
initdb if they are shorter than the alternatives. The length-based
tie breaking was introduced in commit e3846a00c2f ("Prefer timezone
name "UTC" over alternative spellings.").
Would it make sense to ignore symbolic links when searching for the
time zone identifier under /usr/share/zoneinfo in scan_available_timezones?
Something like this (untested):
diff --git a/src/bin/initdb/findtimezone.c b/src/bin/initdb/findtimezone.c
index 2b2ae39adf3..e492e904993 100644
--- a/src/bin/initdb/findtimezone.c
+++ b/src/bin/initdb/findtimezone.c
@@ -677,7 +677,11 @@ scan_available_timezones(char *tzdir, char *tzdirsub, struct tztry *tt,
snprintf(tzdir + tzdir_orig_len, MAXPGPATH - tzdir_orig_len,
"/%s", name);
- if (stat(tzdir, &statbuf) != 0)
+ /*
+ * Ignore symbolic links, so that shorter aliases in directories such
+ * as "US" are not preferred over the "America" directory.
+ */
+ if (lstat(tzdir, &statbuf) != 0)
{
#ifdef DEBUG_IDENTIFY_TIMEZONE
fprintf(stderr, "could not stat \"%s\": %m\n",
@@ -693,7 +697,7 @@ scan_available_timezones(char *tzdir, char *tzdirsub, struct tztry *tt,
scan_available_timezones(tzdir, tzdirsub, tt,
bestscore, bestzonename);
}
- else
+ else if (S_ISREG(statbuf.st_mode))
{
/* Load and test this file */
int score = score_timezone(tzdirsub, tt);
From | Date | Subject | |
---|---|---|---|
Next Message | Dilip Kumar | 2025-09-14 08:09:51 | Re: Incorrect logic in XLogNeedsFlush() |
Previous Message | Dilip Kumar | 2025-09-14 06:53:12 | Re: Proposal: Conflict log history table for Logical Replication |