This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix 32-bit overflow in mktime() when time_t is 64-bits long


On May 15 21:08, Freddie Chopin wrote:
> Hello!
> 
> Currently when time_t is configured to be 64-bits long, mktime() will
> fail for years above 2038. For example converting 01.01.2040 00:00:00
> gives -2085978496 instead of the expected 2208988800. Patch which fixes
> this behaviour is attached.
> 
> I'll try to post an improved version of mktime() in a few days.
> 
> Regards,
> FCh

> From 08f891e37a850c1229d33460f0846c2cbcc08245 Mon Sep 17 00:00:00 2001
> From: Freddie Chopin <freddie.chopin@gmail.com>
> Date: Tue, 15 May 2018 20:58:08 +0200
> Subject: [PATCH] Fix 32-bit overflow in mktime() when time_t is 64-bits long
> 
> When converting number of days since epoch (32-bits) to seconds,
> calculations using 32-bit `long` overflow for years above 2038. Solve
> this by casting number of days to `time_t` just before final
> multiplication.
> 
> Signed-off-by: Freddie Chopin <freddie.chopin@gmail.com>

Pushed.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]