Skip to content

Commit 8ff9937

Browse files
[libc] fix some issues with asctime
1 parent c0eabfd commit 8ff9937

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/libc/asctime.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,19 @@ char *asctime(const struct tm *timeptr)
1414
};
1515
static char result[26];
1616

17-
sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
17+
if (!timeptr ||
18+
timeptr->tm_wday < 0 || timeptr->tm_wday > 6 ||
19+
timeptr->tm_mon < 0 || timeptr->tm_mon > 11 ||
20+
timeptr->tm_mday < 1 || timeptr->tm_mday > 31 ||
21+
timeptr->tm_hour < 0 || timeptr->tm_hour > 23 ||
22+
timeptr->tm_min < 0 || timeptr->tm_min > 59 ||
23+
timeptr->tm_sec < 0 || timeptr->tm_sec > 60 ||
24+
timeptr->tm_year < -1900 || timeptr->tm_year > 8099)
25+
{
26+
return NULL;
27+
}
28+
29+
sprintf(result, "%.3s %.3s %2d %.2d:%.2d:%.2d %d\n",
1830
wday_name[timeptr->tm_wday],
1931
mon_name[timeptr->tm_mon],
2032
timeptr->tm_mday,

0 commit comments

Comments
 (0)