diff options
Diffstat (limited to 'executor')
| -rw-r--r-- | executor/common_bsd.h | 25 | ||||
| -rw-r--r-- | executor/executor_bsd.h | 4 |
2 files changed, 27 insertions, 2 deletions
diff --git a/executor/common_bsd.h b/executor/common_bsd.h index 2bfce1826..eac88fd3c 100644 --- a/executor/common_bsd.h +++ b/executor/common_bsd.h @@ -11,6 +11,24 @@ #include <string.h> #include <sys/syscall.h> +#if GOOS_openbsd +// Needed syscall libc stubs. +#include <dirent.h> +#include <fcntl.h> +#include <poll.h> +#include <sys/event.h> +#include <sys/ioctl.h> +#include <sys/ktrace.h> +#include <sys/mman.h> +#include <sys/msg.h> +#include <sys/sem.h> +#include <sys/shm.h> +#include <sys/socket.h> +#include <sys/stat.h> +#include <sys/sysctl.h> +#include <sys/syslog.h> +#endif // GOOS_openbsd + #if GOOS_netbsd #if SYZ_EXECUTOR || __NR_syz_usb_connect @@ -91,9 +109,12 @@ static int fault_injected(int fd) #endif -#if GOOS_openbsd || GOOS_darwin +#if GOOS_openbsd +#define CAST +#endif // GOOS_openbsd +#if GOOS_darwin #define __syscall syscall -#endif // GOOS_openbsd || GOOS_darwin +#endif // GOOS_darwin #if GOOS_openbsd && (SYZ_EXECUTOR || __NR_syz_open_pts) #include <termios.h> diff --git a/executor/executor_bsd.h b/executor/executor_bsd.h index 1af99f4fc..d88922417 100644 --- a/executor/executor_bsd.h +++ b/executor/executor_bsd.h @@ -47,7 +47,11 @@ static intptr_t execute_syscall(const call_t* c, intptr_t a[kMaxArgs]) { if (c->call) return c->call(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]); +#if GOOS_openbsd + failmsg("no call", "missing target for %s", c->name); +#else return __syscall(c->sys_nr, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]); +#endif } static void cover_open(cover_t* cov, bool extra) |
