https://bugs.kde.org/show_bug.cgi?id=416753

Mark Wielaard <m...@klomp.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #5 from Mark Wielaard <m...@klomp.org> ---
(In reply to Julian Seward from comment #4)
> Any reason not to land this as-is?  Or do you prefer to have them all fixed
> before landing anything?

I just wanted to see if someone would yell and scream about the patch. But it
seems people think it is reasonable and it does fix issues with the latest
linux kernel/glibc combo on 32bit arches.

The 2 missing syscalls are clock_adjtime64 which is complicated, probably never
really used and I suspect our time32 version is not 100% correct (or really
old, the struct we are checking is missing some fields that are in the kernel
version), the other io_pgetevents_time64 we don't implement the "time32"
version either.

commit 3d6a8157d52f18261f2c1a0888c2cfd3289b371e
Author: Mark Wielaard <m...@klomp.org>
Date:   Fri Feb 28 13:36:31 2020 +0100

    Add 32bit time64 syscalls for arm, mips32, ppc32 and x86.

    This patch adds sycall wrappers for the following syscalls which
    use a 64bit time_t on 32bit arches: gettime64, settime64,
    clock_getres_time64, clock_nanosleep_time64, timer_gettime64,
    timer_settime64, timerfd_gettime64, timerfd_settime64,
    utimensat_time64, pselect6_time64, ppoll_time64, recvmmsg_time64,
    mq_timedsend_time64, mq_timedreceive_time64, semtimedop_time64,
    rt_sigtimedwait_time64, futex_time64 and sched_rr_get_interval_time64.

    Still missing are clock_adjtime64 and io_pgetevents_time64.

    For the more complicated syscalls futex[_time64], pselect6[_time64]
    and ppoll[_time64] there are shared pre and/or post helper functions.
    Other functions just have their own PRE and POST handler.

    Note that the vki_timespec64 struct really is the struct as used by
    by glibc (it internally translates a 32bit timespec struct to a 64bit
    timespec64 struct before passing it to any of the time64 syscalls).
    The kernel uses a 64-bit signed int, but is ignoring the upper 32 bits
    of the tv_nsec field. It does always write the full struct though.
    So avoid checking the padding is only needed for PRE_MEM_READ.
    There are two helper pre_read_timespec64 and pre_read_itimerspec64
    to check the new structs.

    https://bugs.kde.org/show_bug.cgi?id=416753

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to