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-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAF=yD-KRtNqR5k7muxuVoL1A08-EC8Bdy5NVdCaEO2UWMK4n9A@mail.gmail.com>
Date:   Fri, 1 Feb 2019 10:59:01 -0800
From:   Willem de Bruijn <willemdebruijn.kernel@...il.com>
To:     Deepa Dinamani <deepa.kernel@...il.com>
Cc:     David Miller <davem@...emloft.net>,
        LKML <linux-kernel@...r.kernel.org>,
        Network Development <netdev@...r.kernel.org>,
        Arnd Bergmann <arnd@...db.de>,
        y2038 Mailman List <y2038@...ts.linaro.org>
Subject: Re: [PATCH net-next v4 00/12] net: y2038-safe socket timestamps

On Fri, Feb 1, 2019 at 7:47 AM Deepa Dinamani <deepa.kernel@...il.com> wrote:
>
> The series introduces new socket timestamps that are
> y2038 safe.
>
> The time data types used for the existing socket timestamp
> options: SO_TIMESTAMP, SO_TIMESTAMPNS and SO_TIMESTAMPING
> are not y2038 safe. The series introduces SO_TIMESTAMP_NEW,
> SO_TIMESTAMPNS_NEW and SO_TIMESTAMPING_NEW to replace these.
> These new timestamps can be used on all architectures.
>
> The alternative considered was to extend the sys_setsockopt()
> by using the flags. We did not receive any strong opinions about
> either of the approaches. Hence, this was chosen, as glibc folks
> preferred this.
>
> The series does not deal with updating the internal kernel socket
> calls like rxrpc to make them y2038 safe. This will be dealt
> with separately.
>
> Note that the timestamps behavior already does not match the
> man page specific behavior:
> SIOCGSTAMP
>     This ioctl should only be used if the socket option SO_TIMESTAMP
>         is not set on the socket. Otherwise, it returns the timestamp of
>         the last packet that was received while SO_TIMESTAMP was not set,
>         or it fails if no such packet has been received,
>         (i.e., ioctl(2) returns -1 with errno set to ENOENT).
>
> The recommendation is to update the man page to remove the above statement.
>
> The overview of the socket timestamp series is as below:
> 1. Delete asm specific socket.h when possible.
> 2. Support SO/SCM_TIMESTAMP* options only in userspace.
> 3. Rename current SO/SCM_TIMESTAMP* to SO/SCM_TIMESTAMP*_OLD.
> 3. Alter socket options so that SOCK_RCVTSTAMPNS does
>    not rely on SOCK_RCVTSTAMP.
> 4. Introduce y2038 safe types for socket timestamp.
> 5. Introduce new y2038 safe socket options SO/SCM_TIMESTAMP*_NEW.
> 6. Intorduce new y2038 safe socket timeout options.
>
> Changes since v3:
> * Rebased onto net-next and fixups as per review comments
> * Merged the socket timeout series
> * Integrated Arnd's patch to simplify compat handling of timeout syscalls
>
> Changes since v2:
> * Removed extra functions to reduce diff churn as per code review
>
> Changes since v1:
> * Dropped the change to disentangle sock flags
> * Renamed sock_timeval to __kernel_sock_timeval
> * Updated a few comments
> * Added documentation changes
>
> Arnd Bergmann (1):
>   socket: move compat timeout handling into sock.c
>
> Deepa Dinamani (11):
>   selftests: add missing include unistd
>   arch: Use asm-generic/socket.h when possible
>   sockopt: Rename SO_TIMESTAMP* to SO_TIMESTAMP*_OLD
>   arch: sparc: Override struct __kernel_old_timeval
>   socket: Use old_timeval types for socket timestamps
>   socket: Add struct __kernel_sock_timeval
>   socket: Add SO_TIMESTAMP[NS]_NEW
>   socket: Add SO_TIMESTAMPING_NEW
>   socket: Update timestamping Documentation
>   socket: Rename SO_RCVTIMEO/ SO_SNDTIMEO with _OLD suffixes
>   sock: Add SO_RCVTIMEO_NEW and SO_SNDTIMEO_NEW
>
>  Documentation/networking/timestamping.txt     |  43 ++++-
>  arch/alpha/include/uapi/asm/socket.h          |  47 ++++--
>  arch/ia64/include/uapi/asm/Kbuild             |   1 +
>  arch/ia64/include/uapi/asm/socket.h           | 122 --------------
>  arch/mips/include/uapi/asm/socket.h           |  47 ++++--
>  arch/parisc/include/uapi/asm/socket.h         |  46 ++++--
>  arch/powerpc/include/uapi/asm/socket.h        |   4 +-
>  arch/s390/include/uapi/asm/Kbuild             |   1 +
>  arch/s390/include/uapi/asm/socket.h           | 119 --------------
>  arch/sparc/include/uapi/asm/posix_types.h     |  10 ++
>  arch/sparc/include/uapi/asm/socket.h          |  49 ++++--
>  arch/x86/include/uapi/asm/Kbuild              |   1 +
>  arch/x86/include/uapi/asm/socket.h            |   1 -
>  arch/xtensa/include/asm/Kbuild                |   1 +
>  arch/xtensa/include/uapi/asm/Kbuild           |   1 +
>  arch/xtensa/include/uapi/asm/socket.h         | 124 --------------
>  drivers/isdn/mISDN/socket.c                   |   2 +-
>  fs/dlm/lowcomms.c                             |   4 +-
>  include/linux/skbuff.h                        |  24 ++-
>  include/linux/socket.h                        |   8 +
>  include/net/sock.h                            |   1 +
>  include/uapi/asm-generic/socket.h             |  48 ++++--
>  include/uapi/linux/errqueue.h                 |   4 +
>  include/uapi/linux/time.h                     |   7 +
>  net/bluetooth/hci_sock.c                      |   4 +-
>  net/compat.c                                  |  78 +--------
>  net/core/scm.c                                |  27 ++++
>  net/core/sock.c                               | 151 +++++++++++++-----
>  net/ipv4/tcp.c                                |  61 ++++---
>  net/rds/af_rds.c                              |  10 +-
>  net/rds/recv.c                                |  18 ++-
>  net/rxrpc/local_object.c                      |   2 +-
>  net/smc/af_smc.c                              |   3 +-
>  net/socket.c                                  |  50 ++++--
>  net/vmw_vsock/af_vsock.c                      |   4 +-
>  .../networking/timestamping/rxtimestamp.c     |   1 +
>  36 files changed, 541 insertions(+), 583 deletions(-)
>  delete mode 100644 arch/ia64/include/uapi/asm/socket.h
>  delete mode 100644 arch/s390/include/uapi/asm/socket.h
>  delete mode 100644 arch/x86/include/uapi/asm/socket.h
>  delete mode 100644 arch/xtensa/include/uapi/asm/socket.h
>
> --
> 2.17.1
>

For the series:

Acked-by: Willem de Bruijn <willemb@...gle.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ