aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-01-31 09:56:54 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-01-31 11:35:53 +0100
commit937e1ba861aa34554f512e1f6d0b493d89b883fc (patch)
treecaa96214618ccd1bb652ef9e602a60fc685ce074 /pkg
parent6fb60a48131bd6ca2bb8ea760f253e057547c429 (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.go85
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