Catch UB in asctime_r()
This adds assertions to trap UB in asctime_r()
(and therefore, also in asctime()
, ctime()
and ctime_r()
).
Determining which inputs actually cause UB turned out to be a surprising rabbit hole, which I've tried to document in the comments.