On Mon, 2021-03-08 at 18:12 +0100, Jan Kiszka wrote:
> On 08.03.21 18:02, Florian Bezdeka wrote:
> > On systems using 32 bit for time_t the sem_timedwait syscall was broken
> > because the function used for copying the timeout value from userspace
> > to kernel (=sem_fetch_timeout()) was always copying
> > sizeof(struct timespec64).
> > 
> > A 32 bit application (or more specific an application with 4 byte
> > time_t) would only provide sizeof(struct old_timespec32).
> > 
> > Notable changes:
> >   - The copy operation from userspace to kernel is now already done in
> >     the syscall handler. So it is always done. Previously it was copied
> >     over and validated before the first use (when used at all).
> >     So we have some additional instructions now that may be
> >     unnecessary, but that simplifies the code.
> > 
> >   - Validation: Switched to timespec64_valid() instead of our own
> >     check.
> > 
> > Fixes: 8043eccd232d ("cobalt/kernel: y2038: convert struct timespec to 
> > timespec64")
> 
> This patch was dropped from next again (and that sha was never applied).
> We should go a for fixed version of that series (patches 2..5, only
> patch 1 is now applied).

That's one of the things that may happen when working with branches
that are getting rebased... The correct refspec is maybe 4d31feb5 now,
which is part of wip/dovetail.

Please note the RFC tag. Would be nice to get some feedback before
going ahead, otherwise the loops with all the necessary synchronization
and rebases is getting endless...

Thanks!
> 
> Jan
> 

Reply via email to