On Thu, Oct 19, 2017 at 5:17 PM, Jan Kara jack@suse.cz wrote:
On Thu 19-10-17 16:47:48, Arnd Bergmann wrote:
isofs uses a 'char' variable to load the number of years since 1900 for an inode timestamp. On architectures that use a signed char type by default, this results in an invalid date for anything beyond 2027.
This changes the function argument to a 'u8' array, which is defined the same way on all architectures, and unambiguously lets us use years until 2155.
This should be backported to all kernels that might still be in use by that date.
Cc: stable@vger.kernel.org Signed-off-by: Arnd Bergmann arnd@arndb.de
...
-int iso_date(char * p, int flag) +int iso_date(u8 *p, int flag) { int year, month, day, hour, minute, second, tz; int crtime;
year = p[0];
year = (int)(u8)p[0];
The cast seems unnecessary now?
Sorry, I must have rebased the patch incorrectly, this was intended to be removed of course.
Arnd