diff --git a/sys/kern/subr_fattime.c b/sys/kern/subr_fattime.c --- a/sys/kern/subr_fattime.c +++ b/sys/kern/subr_fattime.c @@ -229,8 +229,11 @@ tsp->tv_sec += dh / 100; tsp->tv_nsec = (dh % 100) * 10000000; - /* Day of month */ - day = (dd & 0x1f) - 1; + /* Day of month (FAT stores 1..31; 0 is invalid) */ + day = (dd & 0x1f); + if (day == 0) + day = 1; + day -= 1; /* Full leap-year cycles */ day += LYC * ((dd >> 11) & 0x1f);