From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7919) id DFE763857732; Wed, 16 Aug 2023 20:01:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DFE763857732 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1692216116; bh=gOZm6M5QduTrVXobQq7eS2jzi1iEVRC2iJGT1HIgpX4=; h=From:To:Subject:Date:From; b=cyF9Af1CMQigWpIPjGNJHu9QZkXr+8jG7dZBKH0BEckBwuvLQil3z50SFxltiRXQL lGHaV6NQbQIHmNhbgC4NnVIxA2OJ1q16wWanbT9k2upG1fTe7tU2270VAzoroDMdSE fdkyslzv2da43mUNjoWV1YqXmrgZcnaWYhDuYpck= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Sam James To: glibc-cvs@sourceware.org Subject: [glibc] sysdeps: tst-bz21269: handle ENOSYS & skip appropriately X-Act-Checkin: glibc X-Git-Author: Sam James X-Git-Refname: refs/heads/master X-Git-Oldrev: e0b712dd9183d527aae4506cd39564c14af3bb28 X-Git-Newrev: 652b9fdb77d9fd056d4dd26dad2c14142768ab49 Message-Id: <20230816200156.DFE763857732@sourceware.org> Date: Wed, 16 Aug 2023 20:01:56 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=652b9fdb77d9fd056d4dd26dad2c14142768ab49 commit 652b9fdb77d9fd056d4dd26dad2c14142768ab49 Author: Sam James Date: Sat Aug 5 00:04:33 2023 +0100 sysdeps: tst-bz21269: handle ENOSYS & skip appropriately SYS_modify_ldt requires CONFIG_MODIFY_LDT_SYSCALL to be set in the kernel, which some distributions may disable for hardening. Check if that's the case (unset) and mark the test as UNSUPPORTED if so. Reviewed-by: DJ Delorie Signed-off-by: Sam James Diff: --- sysdeps/unix/sysv/linux/i386/tst-bz21269.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c index f508ef8f16..28f5359bea 100644 --- a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c +++ b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c @@ -52,7 +52,16 @@ xset_thread_area (struct user_desc *u_info) static void xmodify_ldt (int func, const void *ptr, unsigned long bytecount) { - TEST_VERIFY_EXIT (syscall (SYS_modify_ldt, func, ptr, bytecount) == 0); + long ret = syscall (SYS_modify_ldt, func, ptr, bytecount); + + if (ret == -1) + { + if (errno == ENOSYS) + FAIL_UNSUPPORTED ("modify_ldt not supported"); + FAIL_EXIT1 ("modify_ldt failed (errno=%d)", errno); + } + + return 0; } static int