diff options
| author | Anton Lindqvist <anton@basename.se> | 2018-08-28 19:07:26 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-08-28 10:07:26 -0700 |
| commit | b771b17ec95715c24715d730363f6f07bc46fd4f (patch) | |
| tree | cfdb14bb69866ad3bd3b35d21d6c803530b1f8b0 /pkg/csource | |
| parent | 7ef1de9ea4b02a8799b3a7f4b1d7b06a586b3f37 (diff) | |
Add mandatory OpenBSD bits (#689)
all: add openbsd support
squash of the following commits:
* openbsd: add mandatory bits
* report: add OpenBSD support
* executor: skip building kvm on OpenBSD
* executor: add OpenBSD support
Linking against libutil is necessary due to usage of openpty(3).
* executor: fix typo in fail() message
* fixup! report: add OpenBSD support
* fixup! openbsd: add mandatory bits
* fixup! openbsd: add mandatory bits
* fixup! openbsd: add mandatory bits
* fixup! report: add OpenBSD support
* gometalinter: skip sys/openbsd
Diffstat (limited to 'pkg/csource')
| -rw-r--r-- | pkg/csource/generated.go | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go index 4f8d32f15..49fc2ffe8 100644 --- a/pkg/csource/generated.go +++ b/pkg/csource/generated.go @@ -155,7 +155,7 @@ static void use_temporary_dir(void) #endif #endif -#if GOOS_akaros || GOOS_netbsd || GOOS_freebsd || GOOS_test +#if GOOS_akaros || GOOS_netbsd || GOOS_freebsd || GOOS_openbsd || GOOS_test #if SYZ_EXECUTOR || SYZ_EXECUTOR_USES_FORK_SERVER && SYZ_REPEAT && SYZ_USE_TMP_DIR #include <dirent.h> #include <stdio.h> @@ -225,7 +225,7 @@ static void thread_start(void* (*fn)(void*), void* arg) #endif #endif -#if GOOS_freebsd || GOOS_netbsd || GOOS_akaros || GOOS_test +#if GOOS_freebsd || GOOS_netbsd || GOOS_openbsd || GOOS_akaros || GOOS_test #if SYZ_EXECUTOR || SYZ_THREADED #include <pthread.h> @@ -387,7 +387,7 @@ void child() #define do_sandbox_namespace() 0 #endif -#elif GOOS_freebsd || GOOS_netbsd +#elif GOOS_freebsd || GOOS_netbsd || GOOS_openbsd #include <unistd.h> @@ -405,6 +405,34 @@ static int do_sandbox_none(void) #define do_sandbox_namespace() 0 #endif +#if GOOS_openbsd + +#define __syscall syscall + +#if SYZ_EXECUTOR || __NR_syz_open_pts + +#if defined(__OpenBSD__) +#include <termios.h> +#include <util.h> +#else +#include <pty.h> +#endif + +static uintptr_t syz_open_pts(void) +{ + int master, slave; + + if (openpty(&master, &slave, NULL, NULL, NULL) == -1) + return -1; + if (dup2(master, master + 100) != -1) + close(master); + return slave; +} + +#endif + +#endif + #elif GOOS_fuchsia #include <fcntl.h> |
