diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2019-01-31 09:56:54 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-01-31 11:35:53 +0100 |
| commit | 937e1ba861aa34554f512e1f6d0b493d89b883fc (patch) | |
| tree | caa96214618ccd1bb652ef9e602a60fc685ce074 /pkg | |
| parent | 6fb60a48131bd6ca2bb8ea760f253e057547c429 (diff) | |
executor: fix do_sandbox_none on akaros and test
do_sandbox_none must not exit, it needs to return.
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/csource/generated.go | 85 |
1 files changed, 2 insertions, 83 deletions
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go index f6337cb88..443a35f64 100644 --- a/pkg/csource/generated.go +++ b/pkg/csource/generated.go @@ -378,7 +378,7 @@ static void loop(); static int do_sandbox_none(void) { loop(); - doexit(0); + return 0; } #endif @@ -4346,7 +4346,7 @@ static void loop(); static int do_sandbox_none(void) { loop(); - doexit(0); + return 0; } #endif @@ -4457,91 +4457,10 @@ static void loop(); static int do_sandbox_none(void) { loop(); - doexit(0); -} -#endif - -#elif GOOS_test - -#include <stdlib.h> -#include <unistd.h> - -#if SYZ_EXECUTOR || __NR_syz_mmap -#include <sys/mman.h> -static long syz_mmap(long a0, long a1) -{ - return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); -} -#endif - -#if SYZ_EXECUTOR || __NR_syz_errno -#include <errno.h> -static long syz_errno(long v) -{ - errno = v; - return v == 0 ? 0 : -1; -} -#endif - -#if SYZ_EXECUTOR || __NR_syz_compare -#include <errno.h> -#include <string.h> -static long syz_compare(long want, long want_len, long got, long got_len) -{ - if (want_len != got_len) { - debug("syz_compare: want_len=%lu got_len=%lu\n", want_len, got_len); - errno = EBADF; - return -1; - } - if (memcmp((void*)want, (void*)got, want_len)) { - debug("syz_compare: data differs, want:\n"); - debug_dump_data((char*)want, want_len); - debug("got:\n"); - debug_dump_data((char*)got, got_len); - errno = EINVAL; - return -1; - } - return 0; -} -#endif - -#if SYZ_EXECUTOR || __NR_syz_compare_int -#include <errno.h> -#include <stdarg.h> -static long syz_compare_int(long n, ...) -{ - va_list args; - va_start(args, n); - long v0 = va_arg(args, long); - long v1 = va_arg(args, long); - long v2 = va_arg(args, long); - long v3 = va_arg(args, long); - va_end(args); - if (n < 2 || n > 4) - return errno = E2BIG, -1; - if (n <= 2 && v2 != 0) - return errno = EFAULT, -1; - if (n <= 3 && v3 != 0) - return errno = EFAULT, -1; - if (v0 != v1) - return errno = EINVAL, -1; - if (n > 2 && v0 != v2) - return errno = EINVAL, -1; - if (n > 3 && v0 != v3) - return errno = EINVAL, -1; return 0; } #endif -#if SYZ_EXECUTOR || SYZ_SANDBOX_NONE -static void loop(); -static int do_sandbox_none(void) -{ - loop(); - doexit(0); -} -#endif - #else #error "unknown OS" #endif |
