Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250606090545.19298-1-zajec5@gmail.com>
Date: Fri,  6 Jun 2025 11:05:45 +0200
From: Rafał Miłecki <zajec5@...il.com>
To: musl@...ts.openwall.com
Cc: Rafał Miłecki <rafal@...ecki.pl>,
	Rich Felker <dalias@...ifal.cx>
Subject: [PATCH] strptime: support "Z" value for the %z field descriptor

From: Rafał Miłecki <rafal@...ecki.pl>

Field descriptor %z was added and described as an output of Austin Group
tracker issues 879 & 1727. It is documented as: "The offset from UTC in
the ISO 8601:2004 standard format (<tt>+hhmm</tt> or <tt>-hhmm</tt>)."

It seems a bit vague as ISO 8601:2004 allows more formats than those
specified ones. One of allowed values is "Z" which represents UTC.
For a reference: glibc supports "Z" since 2015, see:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=900f33e23eaa20c0587f5a191b632a606e7fba5d

To make ISO 8601 dates parsing reliable in musl make it accept "Z" as
well.

Cc: Rich Felker <dalias@...ifal.cx>
Signed-off-by: Rafał Miłecki <rafal@...ecki.pl>
---
For a reference: musl gained %z support in the commit fced99e93dae
("strptime: implement conversion specifiers adopted for next POSIX
issue")

Relevant issues:
https://www.austingroupbugs.net/view.php?id=879
https://www.austingroupbugs.net/view.php?id=1727

 src/time/strptime.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/time/strptime.c b/src/time/strptime.c
index b1147242..b373aa9c 100644
--- a/src/time/strptime.c
+++ b/src/time/strptime.c
@@ -197,6 +197,11 @@ char *strptime(const char *restrict s, const char *restrict f, struct tm *restri
 			want_century = 0;
 			goto numeric_digits;
 		case 'z':
+			if (*s == 'Z') {
+				tm->__tm_gmtoff = 0;
+				s++;
+				break;
+			}
 			if (*s == '+') neg = 0;
 			else if (*s == '-') neg = 1;
 			else return 0;
-- 
2.43.0

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.