From: Stuart Henderson <s...@spacehopper.org>
Subject: Re: valgrind diff to fix run memcheck on amd64
Date: Fri, 18 Oct 2019 21:58:25 +0100

> On 2019/10/18 15:08, Masato Asou wrote:
>> From: YASUOKA Masahiko <yasu...@openbsd.org>
>> Date: Wed, 02 Oct 2019 23:29:05 +0900 (JST)
>> 
>> > I looked into the problem more.
>> > 
>> >  - unveil(2) itself fails
>> >  - so file system related system calls are not restricted (yet)
>> > 
>> > valgrind complains:
>> > 
>> > ==13326==
>> > --13326-- WARNING: unhandled syscall: 114
>> > --13326-- You may be able to write your own handler.
>> > --13326-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
>> > --13326-- Nevertheless we consider this a bug.  Please report
>> > --13326-- it at http://valgrind.org/support/bug_reports.html.
>> > 
>> > valgrind doesn't support unveil(2) yet.  I suppose Asou can add that.
>> 
>> I was added unveil(2).
> 
> Please set REVISION = 14 in ports/devel/valgrind/Makefile so that
> "pkg_add -u" will find the update.
> 
> Otherwise OK sthen@

Modified REVISION.
--
ASOU Masato

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/valgrind/Makefile,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile
--- Makefile    2 Oct 2019 17:19:29 -0000       1.20
+++ Makefile    21 Oct 2019 01:58:47 -0000
@@ -9,7 +9,7 @@ CATEGORIES =            devel
 
 V =                    3.10.1
 PV =                   20160331
-REVISION =             13
+REVISION =             14
 DISTNAME =             valgrind-${V}
 EXTRACT_SUFX =         .tar.bz2
 
Index: patches/patch-coregrind_m_syswrap_priv_syswrap_openbsd_h
===================================================================
RCS file: patches/patch-coregrind_m_syswrap_priv_syswrap_openbsd_h
diff -N patches/patch-coregrind_m_syswrap_priv_syswrap_openbsd_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-coregrind_m_syswrap_priv_syswrap_openbsd_h    21 Oct 2019 
01:58:47 -0000
@@ -0,0 +1,10 @@
+--- coregrind/m_syswrap/priv_syswrap-openbsd.h.orig
++++ coregrind/m_syswrap/priv_syswrap-openbsd.h
+@@ -144,6 +144,7 @@
+ DECL_TEMPLATE(openbsd, sys_pledge);
+ DECL_TEMPLATE(openbsd, sys_ppoll);
+ DECL_TEMPLATE(openbsd, sys_pselect);
++DECL_TEMPLATE(openbsd, sys_unveil);
+ DECL_TEMPLATE(openbsd, sys_sigsuspend);
+ DECL_TEMPLATE(openbsd, sys_gettimeofday);
+ DECL_TEMPLATE(openbsd, sys_getrusage);
Index: patches/patch-coregrind_m_syswrap_syswrap_openbsd_c
===================================================================
RCS file: patches/patch-coregrind_m_syswrap_syswrap_openbsd_c
diff -N patches/patch-coregrind_m_syswrap_syswrap_openbsd_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-coregrind_m_syswrap_syswrap_openbsd_c 21 Oct 2019 01:58:47 
-0000
@@ -0,0 +1,30 @@
+--- coregrind/m_syswrap/syswrap-openbsd.c.orig
++++ coregrind/m_syswrap/syswrap-openbsd.c
+@@ -575,6 +579,17 @@
+ // XXXTBD
+ }
+ 
++PRE(sys_unveil)
++{
++   PRINT("sys_unveil ( %#lx(%s), %#lx(%s) )",
++         ARG1,(char *)ARG1,ARG2,(char*)ARG2);
++   PRE_REG_READ2(long, "unveil", const char *, path, const char *, 
permissions);
++   if (ARG1 != (UWord)NULL)
++     PRE_MEM_RASCIIZ( "unveil(path)", ARG1 );
++   if (ARG2 != (UWord)NULL)
++     PRE_MEM_RASCIIZ( "unveil(permissions)", ARG2 );
++}
++
+ PRE(sys_getsockname)
+ {
+    PRINT("sys_getsockname ( %ld, %#lx, %#lx )",ARG1,ARG2,ARG3);
+@@ -4079,7 +4093,7 @@
+   BSDX_(__NR_sigsuspend,      sys_sigsuspend),        // 111
+   BSDX_(__NR_sendsyslog,      sys_sendsyslog),        // 112
+   // obsol orecvmsg                                   // 113
+-  // obsol osendmsg                                   // 114
++  BSDX_(__NR_unveil,          sys_unveil),            // 114
+   // obsol vtrace                                     // 115
+ 
+   BSDX_(__NR_getsockopt,      sys_getsockopt),        // 118
+Only in pobj/valgrind-3.10.1/valgrind-3.10.1/coregrind/m_syswrap: 
syswrap-openbsd.c.orig
Index: patches/patch-include_vki_vki_scnums_openbsd_h
===================================================================
RCS file: patches/patch-include_vki_vki_scnums_openbsd_h
diff -N patches/patch-include_vki_vki_scnums_openbsd_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-include_vki_vki_scnums_openbsd_h      21 Oct 2019 01:58:47 
-0000
@@ -0,0 +1,10 @@
+--- include/vki/vki-scnums-openbsd.h.orig
++++ include/vki/vki-scnums-openbsd.h
+@@ -146,6 +146,7 @@
+ #define       __NR_pselect            110
+ #define       __NR_sigsuspend         111
+ #define       __NR_sendsyslog         112
++#define       __NR_unveil             114
+ #define       __NR_getsockopt         118
+ #define       __NR_thrkill            119
+ #define       __NR_readv              120

Reply via email to