Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Jul 2014 16:20:12 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 192016] New: Incorrect result for %s in strftime
Message-ID:  <bug-192016-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192016

            Bug ID: 192016
           Summary: Incorrect result for %s in strftime
           Product: Base System
           Version: 10.0-STABLE
          Hardware: Any
                OS: Any
            Status: Needs Triage
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: quae@daurnimator.com

The %s specifier in strftime doesn't respect timezones.

Example:

    #include <time.h>
    #include <stdio.h>

    int main() {
        time_t t = 1234567890;
        struct tm *tmp = gmtime(&t);
        char output[200];
        strftime(output, 200, "%s", tmp);
        printf("%s\n",output);
        return 0;
    }

Run with a non UTC timezone. e.g. TZ=GMT+9
Output will be 1234600290 instead of expected 1234567890

Location in BSD's libc:
https://svnweb.freebsd.org/base/release/10.0.0/lib/libc/stdtime/strftime.c?view=markup#l312

This bug also exists in glibc:
http://fossies.org/dox/glibc-2.19/strftime__l_8c_source.html#l01133
Bug filed at https://sourceware.org/bugzilla/show_bug.cgi?id=17189

It does not occur in musl:
http://git.musl-libc.org/cgit/musl/tree/src/time/strftime.c?id=ac0acd569e01735fc6052d43fdf57f3a07c93f3d#n127

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-192016-8>