Skip to content
Snippets Groups Projects
Commit 7ec7f5bf authored by patacongo's avatar patacongo
Browse files

Fix hcs12 integer overflows

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2327 42af7a65-404d-4744-a932-0658087f49c3
parent 09e97e68
No related branches found
No related tags found
No related merge requests found
......@@ -50,6 +50,10 @@
* Definitions
****************************************************************************/
#define SEC_PER_MIN ((time_t)60)
#define SEC_PER_HOUR ((time_t)60 * SEC_PER_MIN)
#define SEC_PER_DAY ((time_t)24 * SEC_PER_HOUR)
/****************************************************************************
* Private Type Declarations
****************************************************************************/
......@@ -310,14 +314,14 @@ struct tm *gmtime_r(const time_t *clock, struct tm *result)
/* Convert to days, hours, minutes, and seconds since the EPOCH */
jdn = time / (24*60*60);
time -= (24*60*60) * jdn;
jdn = time / SEC_PER_DAY;
time -= SEC_PER_DAY * jdn;
hour = time / (60*60);
time -= (60*60) * hour;
hour = time / SEC_PER_HOUR;
time -= SEC_PER_HOUR * hour;
min = time / 60;
time -= 60 * min;
min = time / SEC_PER_MIN;
time -= SEC_PER_MIN * min;
sec = time;
......
......@@ -189,8 +189,8 @@ size_t strftime(char *s, size_t max, const char *format, const struct tm *tm)
if (tm->tm_mon < 12)
{
str = g_abbrevmonthname[tm->tm_mon];
len = snprintf(dest, chleft, "%s", str);
}
len = snprintf(dest, chleft, "%s", str);
}
break;
......@@ -201,8 +201,8 @@ size_t strftime(char *s, size_t max, const char *format, const struct tm *tm)
if (tm->tm_mon < 12)
{
str = g_monthname[tm->tm_mon];
len = snprintf(dest, chleft, "%s", str);
}
len = snprintf(dest, chleft, "%s", str);
}
break;
......@@ -259,8 +259,8 @@ size_t strftime(char *s, size_t max, const char *format, const struct tm *tm)
if (tm->tm_mon < 12)
{
value = clock_daysbeforemonth(tm->tm_mon, clock_isleapyear(tm->tm_year)) + tm->tm_mday;
len = snprintf(dest, chleft, "%03d", value);
}
len = snprintf(dest, chleft, "%03d", value);
}
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment