From 210967ce32172eb7356747ed0b655e1fc37d0c57 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 9 Dec 2021 09:49:32 +0100 Subject: [PATCH 8/9] nptl: rseq failure after registration on main thread is fatal This simplifies the application programming model. Browser sandboxes have already been fixed: Sandbox is incompatible with rseq registration Allow rseq in the Linux sandboxes. r=gcp Sandbox needs to support rseq system call Linux sandbox: Allow rseq(2) Reviewed-by: Szabolcs Nagy --- nptl/pthread_create.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index f405fa35..109c5e3d 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -371,7 +371,8 @@ start_thread (void *arg) /* Register rseq TLS to the kernel. */ { bool do_rseq = THREAD_GETMEM (pd, flags) & ATTR_FLAG_DO_RSEQ; - rseq_register_current_thread (pd, do_rseq); + if (!rseq_register_current_thread (pd, do_rseq) && do_rseq) + __libc_fatal ("Fatal glibc error: rseq registration failed\n"); } #ifndef __ASSUME_SET_ROBUST_LIST -- 2.23.0