From 3f79a49dd29be1ea2a227304a496269711eea4d9 Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Wed, 21 Oct 2015 22:17:13 -0500 Subject: check bounds before casting (long long) to time_t --- crypto/compat/timegm.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'crypto') diff --git a/crypto/compat/timegm.c b/crypto/compat/timegm.c index 5a9e600..2658445 100644 --- a/crypto/compat/timegm.c +++ b/crypto/compat/timegm.c @@ -208,6 +208,12 @@ time_t timegm(struct tm *tm) errno = EOVERFLOW; return -1; } +#if SIZEOF_TIME_T != 8 + if (t > (long long)INT_MAX || t < (long long)INT_MIN) { + errno = EOVERFLOW; + return -1; + } +#endif *tm = new; tm->tm_isdst = 0; return t; -- cgit v1.2.3-55-g6feb