Re: [PATCH 7/9] fix get_timespec64() for y2038 safe compat interfaces

From: Arnd Bergmann
Date: Tue Nov 14 2017 - 09:17:30 EST


On Fri, Nov 10, 2017 at 11:42 PM, Deepa Dinamani <deepa.kernel@xxxxxxxxx> wrote:

> +
> + /* Zero out the padding for 32 bit systems or in compat mode */
> + if (!IS_ENABLED(CONFIG_64BIT) || in_compat_syscall())
> + kts.tv_nsec &= 0xFFFFFFFFUL;

Is this correct for x32? Since x32 has a 64-bit tv_nsec, I think we currently
return an error in timespec64_valid when e.g. you pass 0xffffffff00000000
as the tv_nsec value, while after this patch x32 would behave the same way
as other 32-bit architectures and silently clear the upper bits.

Arnd