Hello.

Below is a patch for changing "UTC" into "UTC0" for TZ assignments.
The former is not POSIX compliant. From /usr/src/lib/libc/time/Theory:

        The POSIX TZ string takes the following form:

                stdoffset[dst[offset],date[/time],date[/time]]

        where:

        std and dst
                are 3 or more characters specifying the standard
                and daylight saving time (DST) zone names.
                Starting with POSIX.1-2001, std and dst may also be
                in a quoted form like "<UTC+10>"; this allows
                "+" and "-" in the names.
        offset
                is of the form `[-]hh:[mm[:ss]]' and specifies the
                                     ^
                    [This is wrong, the colon is optional in POSIX docs]

                offset west of UTC.  The default DST offset is one hour
                ahead of standard time.

While it makes no difference on OpenBSD, rpki-client-portable pulls from
the OpenBSD tree. There are no other portable OpenBSD subprojects that
need this change from what I could find.

Also, it might be a good idea to check for time() and setenv() errors in
these files.

Index: output-json.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/output-json.c,v
retrieving revision 1.13
diff -u -p -r1.13 output-json.c
--- output-json.c       12 Sep 2020 15:46:48 -0000      1.13
+++ output-json.c       16 Sep 2020 07:00:00 -0000
@@ -30,7 +30,7 @@ outputheader_json(FILE *out, struct stat
        time_t          t;
 
        time(&t);
-       setenv("TZ", "UTC", 1);
+       setenv("TZ", "UTC0", 1);
        tp = localtime(&t);
        strftime(tbuf, sizeof tbuf, "%FT%TZ", tp);
 
Index: output.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/output.c,v
retrieving revision 1.17
diff -u -p -r1.17 output.c
--- output.c    12 Sep 2020 15:46:48 -0000      1.17
+++ output.c    16 Sep 2020 07:00:00 -0000
@@ -177,7 +177,7 @@ outputheader(FILE *out, struct stats *st
        time_t          t;
 
        time(&t);
-       setenv("TZ", "UTC", 1);
+       setenv("TZ", "UTC0", 1);
        tp = localtime(&t);
        strftime(tbuf, sizeof tbuf, "%a %b %e %H:%M:%S %Z %Y", tp);
 

Reply via email to