mjw pushed to valgrind (master). "Add valgrind-3.10.1-memfd_create.patch."

notifications at fedoraproject.org notifications at fedoraproject.org
Wed Jun 3 12:59:11 UTC 2015


From 086fbe0c11deb0c22c21080844c9ad5a722b689a Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mjw at redhat.com>
Date: Wed, 3 Jun 2015 14:13:26 +0200
Subject: Add valgrind-3.10.1-memfd_create.patch.


diff --git a/valgrind-3.10.1-memfd_create.patch b/valgrind-3.10.1-memfd_create.patch
new file mode 100644
index 0000000..09c99d2
--- /dev/null
+++ b/valgrind-3.10.1-memfd_create.patch
@@ -0,0 +1,171 @@
+diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h
+index 22c6c98..4a8d7e1 100644
+--- a/coregrind/m_syswrap/priv_syswrap-linux.h
++++ b/coregrind/m_syswrap/priv_syswrap-linux.h
+@@ -285,6 +285,7 @@ DECL_TEMPLATE(linux, sys_fanotify_mark);
+ 
+ // Linux-specific (new in Linux 3.17)
+ DECL_TEMPLATE(linux, sys_getrandom);
++DECL_TEMPLATE(linux, sys_memfd_create);
+ 
+ /* ---------------------------------------------------------------------
+    Wrappers for sockets and ipc-ery.  These are split into standalone
+diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
+index ae696b1..88802fb 100644
+--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
++++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
+@@ -1078,8 +1078,8 @@ static SyscallTableEntry syscall_table[] = {
+ //   LIN__(__NR_sched_getattr,     sys_ni_syscall),       // 315
+ //   LIN__(__NR_renameat2,         sys_ni_syscall),       // 316
+ //   LIN__(__NR_seccomp,           sys_ni_syscall),       // 317
+-   LINXY(__NR_getrandom,         sys_getrandom)         // 318
+-//   LIN__(__NR_memfd_create,      sys_ni_syscall),       // 319
++   LINXY(__NR_getrandom,         sys_getrandom),        // 318
++   LINXY(__NR_memfd_create,      sys_memfd_create)      // 319
+ 
+ //   LIN__(__NR_kexec_file_load,   sys_ni_syscall),       // 320
+ //   LIN__(__NR_bpf,               sys_ni_syscall)        // 321
+diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
+index 4293800..200b0d1 100644
+--- a/coregrind/m_syswrap/syswrap-arm-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm-linux.c
+@@ -1215,7 +1215,8 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 371
+    LINXY(__NR_clock_adjtime,     sys_clock_adjtime),    // 372
+    LINXY(__NR_sendmmsg,          sys_sendmmsg),         // 374
+-   LINXY(__NR_getrandom,         sys_getrandom)         // 384
++   LINXY(__NR_getrandom,         sys_getrandom),        // 384
++   LINXY(__NR_memfd_create,      sys_memfd_create)      // 385
+ };
+ 
+ 
+diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
+index 56fafac..a72392f 100644
+--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
+@@ -1037,6 +1037,7 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINXY(__NR_process_vm_readv,  sys_process_vm_readv),  // 270
+    LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 271
+    LINXY(__NR_getrandom,         sys_getrandom),         // 278
++   LINXY(__NR_memfd_create,      sys_memfd_create),      // 279
+ 
+ // The numbers below are bogus.  (See comment further down.)
+ // When pulling entries above this line, change the numbers
+diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
+index f0bd3cb..7c72545 100644
+--- a/coregrind/m_syswrap/syswrap-linux.c
++++ b/coregrind/m_syswrap/syswrap-linux.c
+@@ -3018,6 +3018,26 @@ POST(sys_getrandom)
+    POST_MEM_WRITE( ARG1, ARG2 );
+ }
+ 
++PRE(sys_memfd_create)
++{
++   PRINT("sys_memfd_create ( %#lx, %ld )" , ARG1,ARG2);
++   PRE_REG_READ2(int, "memfd_create",
++                 char *, uname, unsigned int, flags);
++   PRE_MEM_RASCIIZ( "memfd_create(uname)", ARG1 );
++}
++
++POST(sys_memfd_create)
++{
++   vg_assert(SUCCESS);
++   if (!ML_(fd_allowed)(RES, "memfd_create", tid, True)) {
++      VG_(close)(RES);
++      SET_STATUS_Failure( VKI_EMFILE );
++   } else {
++      if (VG_(clo_track_fds))
++         ML_(record_fd_open_nameless)(tid, RES);
++   }
++}
++
+ /* ---------------------------------------------------------------------
+    utime wrapper
+    ------------------------------------------------------------------ */
+diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c
+index bddadd0..fa921c1 100644
+--- a/coregrind/m_syswrap/syswrap-mips32-linux.c
++++ b/coregrind/m_syswrap/syswrap-mips32-linux.c
+@@ -1118,7 +1118,8 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINXY (__NR_process_vm_readv,       sys_process_vm_readv),        // 345
+    LINX_ (__NR_process_vm_writev,      sys_process_vm_writev),       // 346
+    //..
+-   LINXY(__NR_getrandom,               sys_getrandom)                // 353
++   LINXY(__NR_getrandom,               sys_getrandom),               // 353
++   LINXY(__NR_memfd_create,            sys_memfd_create)             // 354
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
+diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
+index c51ab6f..f8340ab 100644
+--- a/coregrind/m_syswrap/syswrap-mips64-linux.c
++++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
+@@ -910,7 +910,8 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINXY (__NR_clock_adjtime, sys_clock_adjtime),
+    LINXY (__NR_process_vm_readv, sys_process_vm_readv),
+    LINX_ (__NR_process_vm_writev, sys_process_vm_writev),
+-   LINXY(__NR_getrandom, sys_getrandom)
++   LINXY(__NR_getrandom, sys_getrandom),
++   LINXY(__NR_memfd_create, sys_memfd_create)
+ };
+ 
+ SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+index 5c058c2..6b53abe 100644
+--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+@@ -1258,7 +1258,8 @@ static SyscallTableEntry syscall_table[] = {
+    LINXY(__NR_process_vm_readv,  sys_process_vm_readv), // 351
+    LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352
+ 
+-   LINXY(__NR_getrandom,         sys_getrandom)         // 359
++   LINXY(__NR_getrandom,         sys_getrandom),        // 359
++   LINXY(__NR_memfd_create,      sys_memfd_create)      // 360
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+index c173593..25e0bde 100644
+--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+@@ -1157,7 +1157,8 @@ static SyscallTableEntry syscall_table[] = {
+    LINXY(__NR_process_vm_readv,  sys_process_vm_readv), // 351
+    LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352
+ 
+-   LINXY(__NR_getrandom,         sys_getrandom)         // 359
++   LINXY(__NR_getrandom,         sys_getrandom),        // 359
++   LINXY(__NR_memfd_create,      sys_memfd_create)      // 360
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
+index 6363e2d..ca969c8 100644
+--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
++++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
+@@ -1050,9 +1050,9 @@ static SyscallTableEntry syscall_table[] = {
+ // ?????(__NR_sched_getattr, ),                                       // 346
+ // ?????(__NR_renameat2, ),                                           // 347
+ // ?????(__NR_seccomp, ),                                             // 348
+-   LINXY(__NR_getrandom, sys_getrandom)                               // 349
++   LINXY(__NR_getrandom, sys_getrandom),                              // 349
+ 
+-// ?????(__NR_memfd_create, ),                                        // 350
++   LINXY(__NR_memfd_create, sys_memfd_create)                         // 350
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
+index dcbf425..0e87679 100644
+--- a/coregrind/m_syswrap/syswrap-x86-linux.c
++++ b/coregrind/m_syswrap/syswrap-x86-linux.c
+@@ -1821,8 +1821,8 @@ static SyscallTableEntry syscall_table[] = {
+ //   LIN__(__NR_renameat2,         sys_ni_syscall),       // 353
+ //   LIN__(__NR_seccomp,           sys_ni_syscall),       // 354
+ 
+-   LINXY(__NR_getrandom,         sys_getrandom)         // 355
+-//   LIN__(__NR_memfd_create,      sys_ni_syscall),       // 356
++   LINXY(__NR_getrandom,         sys_getrandom),        // 355
++   LINXY(__NR_memfd_create,      sys_memfd_create)      // 356
+ //   LIN__(__NR_bpf,               sys_ni_syscall)        // 357
+ };
+ 
diff --git a/valgrind.spec b/valgrind.spec
index b683bb1..e037868 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -83,6 +83,9 @@ Patch10: valgrind-3.10.1-glibc-version-check.patch
 # Upstream valgrind svn r15133
 Patch11: valgrind-3.10-1-ppc64-sigpending.patch
 
+# KDE#343012 - Unhandled syscall 319 (memfd_create)
+Patch12: valgrind-3.10.1-memfd_create.patch
+
 %if %{build_multilib}
 # Ensure glibc{,-devel} is installed for both multilib arches
 BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@@ -192,6 +195,7 @@ Valgrind User Manual for details.
 %patch9 -p1
 %patch10 -p1
 %patch11 -p1
+%patch12 -p1
 
 %build
 # We need to use the software collection compiler and binutils if available.
@@ -347,6 +351,9 @@ echo ===============END TESTING===============
 %endif
 
 %changelog
+* Wed Jun 03 2015 Mark Wielaard <mjw at redhat.com>
+- Add valgrind-3.10.1-memfd_create.patch.
+
 * Fri May 22 2015 Mark Wielaard <mjw at redhat.com> - 3.10.1-8
 - Disable extended regtest on arm. The gdb tests hang for unknown reasons.
   The reason is a glibc bug #1196181 which causes:
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/valgrind.git/commit/?h=master&id=086fbe0c11deb0c22c21080844c9ad5a722b689a


More information about the scm-commits mailing list