Re: [PATCH v2 1/2] isofs: fix timestamps beyond 2027
From: Jan Kara
Date: Tue Oct 31 2017 - 12:59:27 EST
On Thu 19-10-17 17:29:12, Arnd Bergmann wrote:
> On Thu, Oct 19, 2017 at 5:17 PM, Jan Kara <jack@xxxxxxx> 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@xxxxxxxxxxxxxxx
> >> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> > ...
> >> -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.
OK, I've picked up this patch to my tree with this correction.
Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR