Re: [PATCH] Handle out-of-range timestamps in timestamptz_to_str()
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Chao Li <li.evan.chao@gmail.com>
Cc: Алена Васильева <gorcom2012@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-10-15T09:17:14Z
Lists: pgsql-hackers
> On 15 Oct 2025, at 11:12, Chao Li <li.evan.chao@gmail.com> wrote: >> On Oct 15, 2025, at 16:54, Алена Васильева <gorcom2012@gmail.com> wrote: >> The function timestamptz_to_str() in src/bin/pg_waldump/compat.c does not >> handle the case when localtime() returns NULL, which can happen for timestamps >> that are out of the supported time_t range on some platforms. >> >> This patch adds a simple check for a NULL return value and ensures that the >> function returns a clear error string "(timestamp out of range)" instead of >> causing undefined behavior or a crash. Ah yes, thanks for the reminder, it's been on my todo from EAB008E3-6B87-413F-BA39-22A6ED5DF0F6@yesql.se for some time. > I think we can just return a static const string, without copying the string into “buf" as the function returns a “const char *”. The function is documented as returning a value pointing to a static buffer, so it seems better to consistently use that buffer. -- Daniel Gustafsson