From: Isaac Dunham Date: Fri, 16 Oct 2015 01:12:59 +0000 (-0700) Subject: script: don't assume that time_t is compatible with long X-Git-Tag: v2.28-rc1~304 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=345208a5abb876deb451c481a5bab94b009eafe8;p=thirdparty%2Futil-linux.git script: don't assume that time_t is compatible with long time_t may change to 64-bit on 32-bit Linux kernels at some point; at that point, it may be desireable to test for issues with dates past 2038. [kzak@redhat.com: - use %jd rather than %lld] Signed-off-by: Karel Zak --- diff --git a/term-utils/script.c b/term-utils/script.c index eb4ddc3531..67ed8b9ca3 100644 --- a/term-utils/script.c +++ b/term-utils/script.c @@ -141,11 +141,13 @@ static void script_init_debug(void) static inline time_t script_time(time_t *t) { const char *str = getenv("SCRIPT_TEST_SECOND_SINCE_EPOCH"); - time_t sec; + int64_t sec; - if (str && sscanf(str, "%ld", &sec) == 1) - return sec; - return time(t); + if (!str || sscanf(str, "%jd", &sec) != 1) + return time(t); + if (t) + *t = (time_t)sec; + return (time_t)sec; } #else /* !TEST_SCRIPT */ # define script_time(x) time(x)