lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri,  7 Dec 2018 22:18:03 +0100
From:   Arnd Bergmann <arnd@...db.de>
To:     y2038@...ts.linaro.org
Cc:     linux-kernel@...r.kernel.org,
        Deepa Dinamani <deepa.kernel@...il.com>,
        John Stultz <john.stultz@...aro.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        linux-api@...r.kernel.org, Arnd Bergmann <arnd@...db.de>
Subject: [PATCH 0/5] y2038: further system call conversion

This is another set of system call changes that were intended to get
merged much earlier. I've rebased the patches on top of the latest kernel
and Deepa's poll/select/io_pgetevents series now, and applied it to the
same y2038 branch for inclusion in 4.21.

This is just a continuation of the earlier system call changes, so I
expect no surprises here, unless I made a mistake in the rebase.

After this series, the only remaining system calls that need to be
modified are:

- setsockopt/getsockopt, they do not need a new entry in the system
  call table, only new numbers assigned for their socket options.
  Deepa is finalizing her series to passing 64-bit timestamps in cmsg
  correctly for SO_TIMESTAMP{,NS,ING}.
  Further, we need a new SO_RCVTIMEO/SO_SNDTIMEO implementation
  here, which has not been implemented yet.

- waitid/getrusage, this needs a rewrite now from earlier versions
  based on recent feedback. The plan now is to incorporate nanosecond
  timestamps in a new revision of the 'rusage' structure. Possibly also
  include BSD wait6() semantics of passing back the child resource
  usage in waitid(), and/or a method to pass a signal mask as in
  io_pgetevents().  waitid/getrusage() are not required for correct
  behavior with 64-bit time_t and can be safely emulated on top of
  the existing syscalls by the C library beyond 2038.  This needs more
  discussion.

- clock_adjtime, this is also optional and can be implemented
  by the C library if necessary. The plan is to do the same as x32
  and use the 64-bit structure natively on both 32-bit and 64-bit
  architectures. The timex structure contains a 'timeval' at the
  moment, but also supports nanoseconds passed in it. 

- getitimer/setitimer, these again can be trivially emulated
  by the C library.

	Arnd

Arnd Bergmann (5):
  y2038: futex: Move compat implementation into futex.c
  y2038: futex: Add support for __kernel_timespec
  y2038: socket: Add compat_sys_recvmmsg_time64
  y2038: signal: Add sys_rt_sigtimedwait_time32
  y2038: signal: Add compat_sys_rt_sigtimedwait_time64

 include/linux/compat.h   |   8 +-
 include/linux/futex.h    |   8 --
 include/linux/socket.h   |   9 +-
 include/linux/syscalls.h |   9 +-
 kernel/Makefile          |   3 -
 kernel/futex.c           | 207 +++++++++++++++++++++++++++++++++++++--
 kernel/futex_compat.c    | 202 --------------------------------------
 kernel/signal.c          |  65 ++++++++++++
 kernel/sys_ni.c          |   2 +
 net/compat.c             |  34 +++----
 net/socket.c             |  62 +++++++++---
 11 files changed, 345 insertions(+), 264 deletions(-)
 delete mode 100644 kernel/futex_compat.c

-- 
2.18.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ