[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [valgrind] [Bug 397012] New: glibc ld.so uses arch_prctl on i386
From:       Mark Wielaard <bugzilla_noreply () kde ! org>
Date:       2018-07-31 13:19:09
Message-ID: bug-397012-17878 () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=397012

            Bug ID: 397012
           Summary: glibc ld.so uses arch_prctl on i386
           Product: valgrind
           Version: 3.14 SVN
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: jseward@acm.org
          Reporter: mark@klomp.org
  Target Milestone: ---

arch_prctl used to be amd64 only. But since linux 4.12 it is also implemented
or i386. And since glibc 2.28 (not yet released) it will be used to see if the
cpu/kernel provides CET support.

See also https://bugs.kde.org/show_bug.cgi?id=396887

To prevent seeing:

WARNING: unhandled x86-linux syscall: 384
You may be able to write your own handler.
Read the file README_MISSING_SYSCALL_OR_IOCTL.
Nevertheless we consider this a bug.  Please report
it at http://valgrind.org/support/bug_reports.html.

on every program run under valgrind I just made it ENOSYS on Fedora:

diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c
b/coregrind/m_syswrap/syswrap-x86-linux.c
index bec145a..11bb13d 100644
--- a/coregrind/m_syswrap/syswrap-x86-linux.c
+++ b/coregrind/m_syswrap/syswrap-x86-linux.c
@@ -1604,7 +1604,10 @@ static SyscallTableEntry syscall_table[] = {
    LINX_(__NR_sendmsg,           sys_sendmsg),          // 370
    LINXY(__NR_recvfrom,          sys_recvfrom),         // 371
    LINXY(__NR_recvmsg,           sys_recvmsg),          // 372
-   LINX_(__NR_shutdown,          sys_shutdown)          // 373
+   LINX_(__NR_shutdown,          sys_shutdown),         // 373
+
+   /* Explicitly not supported on i386 yet. */
+   GENX_(__NR_arch_prctl,        sys_ni_syscall)        // 384
 };

 SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )

This is fine for glibc/ld.so usage since any failure indicates no CET support.

-- 
You are receiving this mail because:
You are watching all bug changes.=
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic