This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[PATCH] Remove harmful casts in gmtime_r()
- From: Sebastian Huber <sebastian dot huber at embedded-brains dot de>
- To: newlib at sourceware dot org
- Cc: philipp dot trommler at preh dot de
- Date: Thu, 7 Sep 2017 15:10:09 +0200
- Subject: [PATCH] Remove harmful casts in gmtime_r()
- Authentication-results: sourceware.org; auth=none
In case time_t is long, then the cast to long is a nop. In case time_t
is __int_least64_t, then the cast to long may truncate the value before
the division.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
---
newlib/libc/time/gmtime_r.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/newlib/libc/time/gmtime_r.c b/newlib/libc/time/gmtime_r.c
index 81c7c94b1..6475df3ba 100644
--- a/newlib/libc/time/gmtime_r.c
+++ b/newlib/libc/time/gmtime_r.c
@@ -56,8 +56,8 @@ _DEFUN (gmtime_r, (tim_p, res),
unsigned erayear, yearday, month, day;
unsigned long eraday;
- days = ((long)lcltime) / SECSPERDAY + EPOCH_ADJUSTMENT_DAYS;
- rem = ((long)lcltime) % SECSPERDAY;
+ days = lcltime / SECSPERDAY + EPOCH_ADJUSTMENT_DAYS;
+ rem = lcltime % SECSPERDAY;
if (rem < 0)
{
rem += SECSPERDAY;
--
2.12.3