Fix possible strict aliasing issue (if time_t is the same size as int but
not int but for example long) which also resulted in a false positive
warning on systems with 64-bit time_t. Pointer casts are bad, we can just
copy the time_t.
Elsewhere, avoid casting char * to int * by using memcpy().