summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2017-06-20 20:31:35 -0400
committerRich Felker <dalias@aerifal.cx>2017-06-20 20:31:35 -0400
commit64f855874c32e192382df69f4765a7e32057a005 (patch)
tree06a2b8930057e9a0e52aaefa06fcd9a1dc417dc6
parent2d7d05f031e014068a61d3076c6178513395d2ae (diff)
downloadmusl-64f855874c32e192382df69f4765a7e32057a005.tar.gz
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.
-rw-r--r--src/time/ctime_r.c5
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;
}