diff options
author | Rich Felker <dalias@aerifal.cx> | 2017-06-20 20:31:35 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2017-06-20 20:31:35 -0400 |
commit | 64f855874c32e192382df69f4765a7e32057a005 (patch) | |
tree | 06a2b8930057e9a0e52aaefa06fcd9a1dc417dc6 /src | |
parent | 2d7d05f031e014068a61d3076c6178513395d2ae (diff) | |
download | musl-64f855874c32e192382df69f4765a7e32057a005.tar.gz musl-64f855874c32e192382df69f4765a7e32057a005.tar.bz2 musl-64f855874c32e192382df69f4765a7e32057a005.tar.xz musl-64f855874c32e192382df69f4765a7e32057a005.zip |
handle errors from localtime_r in ctime_r
POSIX requires ctime_r return a null pointer on failure, which can
occur if the input time_t value is not representable in broken down
form.
based on patch by Alexander Monakov.
Diffstat (limited to 'src')
-rw-r--r-- | src/time/ctime_r.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/time/ctime_r.c b/src/time/ctime_r.c index d2260a16..3e24aa68 100644 --- a/src/time/ctime_r.c +++ b/src/time/ctime_r.c @@ -2,7 +2,6 @@ char *ctime_r(const time_t *t, char *buf) { - struct tm tm; - localtime_r(t, &tm); - return asctime_r(&tm, buf); + struct tm tm, *tm_p = localtime_r(t, &tm); + return tm_p ? asctime_r(tm_p, buf) : 0; } |