[PATCH] fs: isofs: Fix bug in the way to check if the year is a leap year

From: Oscar Forner Martinez
Date: Fri Jan 02 2015 - 11:17:05 EST


The way to check if the year is a leap year was incomplete.
It was checking only if the year can be divided by 4, that is
necessary but not a sufficient condition. It has to check as well
if the year can not be divided by 100 or if the year can be
divided by 400.

Signed-off-by: Oscar Forner Martinez <oscar.forner.martinez@xxxxxxxxx>
---
fs/isofs/util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/isofs/util.c b/fs/isofs/util.c
index 01e1ee7..d2dd602 100644
--- a/fs/isofs/util.c
+++ b/fs/isofs/util.c
@@ -38,7 +38,7 @@ int iso_date(char * p, int flag)
days += (year+1) / 4;
for (i = 1; i < month; i++)
days += monlen[i-1];
- if (((year+2) % 4) == 0 && month > 2)
+ if (((year+2) % 4) == 0 && month > 2 && ((((year+2) % 100) != 0) || (((year+2) % 400) == 0)))
days++;
days += day - 1;
crtime = ((((days * 24) + hour) * 60 + minute) * 60)
--
2.2.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/