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 for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220117203925.12164-1-mathieu.desnoyers@efficios.com>
Date:   Mon, 17 Jan 2022 15:39:20 -0500
From:   Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     linux-kernel@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
        "Paul E . McKenney" <paulmck@...nel.org>,
        Boqun Feng <boqun.feng@...il.com>,
        "H . Peter Anvin" <hpa@...or.com>, Paul Turner <pjt@...gle.com>,
        linux-api@...r.kernel.org,
        Christian Brauner <christian.brauner@...ntu.com>,
        Florian Weimer <fw@...eb.enyo.de>, David.Laight@...LAB.COM,
        carlos@...hat.com,
        Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Subject: [RFC PATCH 0/5] RSEQ selftests uplift for glibc-2.35 compatibility

glibc-2.35 will be released on 2022-02-01. It introduces a user-space ABI
based on the thread pointer to access a reserved area of the TCB.

The rseq selftests originally expected the rseq thread data to sit in a
__rseq_abi TLS variable.

Considering that the rseq ABI only allows a single rseq registration per
thread, both cannot actively coexist in a process.

Adapt the selftests librseq implementation to become compatible with
glibc-2.35. Keep a fallback implementation based on TLS available when
an older glibc is detected.

Feedback is welcome,

Thanks,

Mathieu

Mathieu Desnoyers (5):
  selftests/rseq: Remove useless assignment to cpu variable
  selftests/rseq: Remove volatile from __rseq_abi
  selftests/rseq: Introduce rseq_get_abi() helper
  selftests/rseq: Introduce thread pointer getters
  selftests/rseq: Uplift rseq selftests for compatibility with
    glibc-2.35

 tools/testing/selftests/rseq/Makefile         |   2 +-
 tools/testing/selftests/rseq/param_test.c     |   4 +-
 tools/testing/selftests/rseq/rseq-arm.h       |  32 ++--
 tools/testing/selftests/rseq/rseq-arm64.h     |  32 ++--
 .../rseq/rseq-generic-thread-pointer.h        |  25 +++
 tools/testing/selftests/rseq/rseq-mips.h      |  32 ++--
 .../selftests/rseq/rseq-ppc-thread-pointer.h  |  30 ++++
 tools/testing/selftests/rseq/rseq-ppc.h       |  32 ++--
 tools/testing/selftests/rseq/rseq-s390.h      |  24 +--
 .../selftests/rseq/rseq-thread-pointer.h      |  19 +++
 .../selftests/rseq/rseq-x86-thread-pointer.h  |  40 +++++
 tools/testing/selftests/rseq/rseq-x86.h       |  30 ++--
 tools/testing/selftests/rseq/rseq.c           | 161 +++++++++---------
 tools/testing/selftests/rseq/rseq.h           |  24 ++-
 14 files changed, 302 insertions(+), 185 deletions(-)
 create mode 100644 tools/testing/selftests/rseq/rseq-generic-thread-pointer.h
 create mode 100644 tools/testing/selftests/rseq/rseq-ppc-thread-pointer.h
 create mode 100644 tools/testing/selftests/rseq/rseq-thread-pointer.h
 create mode 100644 tools/testing/selftests/rseq/rseq-x86-thread-pointer.h

-- 
2.17.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ