aboutsummaryrefslogtreecommitdiffstats
path: root/executor
diff options
context:
space:
mode:
authorGreg Steuck <gnezdo@google.com>2018-12-11 14:30:49 -0800
committerDmitry Vyukov <dvyukov@google.com>2018-12-13 09:44:24 +0100
commitf3d9d5948cad441ab08e763c8ed86efe79f4198b (patch)
tree6e1c38fcb434a2aa74928a1a9871a77e406c273f /executor
parentec0147d47fb25d0efdc677000312db1919ea0086 (diff)
pkg/csource: support tun and setuid repros on {free,open}bsd
* expose procid on BSD for tun, always declare loop() * deal with terrible bsd includes * replicate loop() declaration
Diffstat (limited to 'executor')
-rw-r--r--executor/common.h3
-rw-r--r--executor/common_bsd.h7
2 files changed, 8 insertions, 2 deletions
diff --git a/executor/common.h b/executor/common.h
index 7e855b91c..6823c6ba4 100644
--- a/executor/common.h
+++ b/executor/common.h
@@ -40,7 +40,8 @@ NORETURN void doexit(int status)
#endif
#if SYZ_EXECUTOR || SYZ_PROCS || SYZ_REPEAT && SYZ_ENABLE_CGROUPS || \
- __NR_syz_mount_image || __NR_syz_read_part_table
+ __NR_syz_mount_image || __NR_syz_read_part_table || \
+ (GOOS_openbsd || GOOS_freebsd) && SYZ_TUN_ENABLE
unsigned long long procid;
#endif
diff --git a/executor/common_bsd.h b/executor/common_bsd.h
index 53ffc8668..0dcf6ff5f 100644
--- a/executor/common_bsd.h
+++ b/executor/common_bsd.h
@@ -211,7 +211,8 @@ struct tcp_resources {
#include <netinet/ip6.h>
#include <netinet/tcp.h>
-// Include order matters, empty line prevent re-sorting.
+// Include order matters, empty line prevent re-sorting. See a workaround in
+// pkg/csource hoistIncludes.
#include <netinet/if_ether.h>
static long syz_extract_tcp_res(long a0, long a1, long a2)
@@ -299,7 +300,9 @@ static void sandbox_common()
#endif // SYZ_EXECUTOR || SYZ_SANDBOX_SETUID || SYZ_SANDBOX_NONE
#if SYZ_EXECUTOR || SYZ_SANDBOX_NONE
+
static void loop();
+
static int do_sandbox_none(void)
{
sandbox_common();
@@ -317,6 +320,8 @@ static int do_sandbox_none(void)
#include <sys/wait.h>
#include <unistd.h>
+static void loop();
+
static int wait_for_loop(int pid)
{
if (pid < 0)