![]() |
|
Message-ID: <20250820062122.473540-1-raj.khem@gmail.com> Date: Tue, 19 Aug 2025 23:21:22 -0700 From: Khem Raj <raj.khem@...il.com> To: musl@...ts.openwall.com Cc: nsz@...t70.net, Khem Raj <raj.khem@...il.com> Subject: [PATCH libc-test] Fix strptime on musl musl parses the digits for %s but does not populate struct tm (it's "parse-only" and intentionally has no effect on tm). That's why you get a zeroed-out date like 1900-01-00T00:00:00. This is current upstream behavior: case 's': /* Parse only. Effect on tm is unspecified and presently no effect is implemented.. */ musl's strptime only accepts ±hhmm for %z (e.g., -0600). It does not accept ±hh or ±hh:mm. So '-06' fails by design. It can be seen that upstream only checks 4 digits after the sign. Signed-off-by: Khem Raj <raj.khem@...il.com> --- AUTHORS | 1 + src/functional/strptime.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index cf2a394..5e78ef7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -6,3 +6,4 @@ Jens Gustedt Alexander Monakov Julien Ramseier Alyssa Ross +Khem Raj diff --git a/src/functional/strptime.c b/src/functional/strptime.c index b5f8977..f76fa68 100644 --- a/src/functional/strptime.c +++ b/src/functional/strptime.c @@ -109,10 +109,12 @@ int main() { /* Glibc */ checkStrptime("1856-07-10", "%F", &tm4); +#ifdef __GLIBC__ checkStrptime("683078400", "%s", &tm2); +#endif checkStrptimeTz("+0200", 2, 0); checkStrptimeTz("-0530", -5, -30); - checkStrptimeTz("-06", -6, 0); + checkStrptimeTz("-0600", -6, 0); return t_status; }
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.