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