aboutsummaryrefslogtreecommitdiffstats
path: root/executor/executor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'executor/executor.cc')
-rw-r--r--executor/executor.cc42
1 files changed, 17 insertions, 25 deletions
diff --git a/executor/executor.cc b/executor/executor.cc
index a01893eb7..c8a4b8b2e 100644
--- a/executor/executor.cc
+++ b/executor/executor.cc
@@ -100,18 +100,14 @@ static uint32 hash(uint32 a);
static bool dedup(uint32 sig);
#endif
-enum sandbox_type {
- sandbox_none,
- sandbox_setuid,
- sandbox_namespace,
- sandbox_android_untrusted_app
-};
-
uint64 start_time_ms = 0;
static bool flag_debug;
static bool flag_coverage;
-static sandbox_type flag_sandbox;
+static bool flag_sandbox_none;
+static bool flag_sandbox_setuid;
+static bool flag_sandbox_namespace;
+static bool flag_sandbox_android;
static bool flag_extra_coverage;
static bool flag_net_injection;
static bool flag_net_devices;
@@ -408,28 +404,23 @@ int main(int argc, char** argv)
}
int status = 0;
- switch (flag_sandbox) {
- case sandbox_none:
+ if (flag_sandbox_none)
status = do_sandbox_none();
- break;
#if SYZ_HAVE_SANDBOX_SETUID
- case sandbox_setuid:
+ else if (flag_sandbox_setuid)
status = do_sandbox_setuid();
- break;
#endif
#if SYZ_HAVE_SANDBOX_NAMESPACE
- case sandbox_namespace:
+ else if (flag_sandbox_namespace)
status = do_sandbox_namespace();
- break;
#endif
-#if SYZ_HAVE_SANDBOX_ANDROID_UNTRUSTED_APP
- case sandbox_android_untrusted_app:
- status = do_sandbox_android_untrusted_app();
- break;
+#if SYZ_HAVE_SANDBOX_ANDROID
+ else if (flag_sandbox_android)
+ status = do_sandbox_android();
#endif
- default:
+ else
fail("unknown sandbox type");
- }
+
#if SYZ_EXECUTOR_USES_FORK_SERVER
fprintf(stderr, "loop exited with status %d\n", status);
// Other statuses happen when fuzzer processes manages to kill loop, e.g. with:
@@ -469,13 +460,14 @@ void parse_env_flags(uint64 flags)
// Note: Values correspond to ordering in pkg/ipc/ipc.go, e.g. FlagSandboxNamespace
flag_debug = flags & (1 << 0);
flag_coverage = flags & (1 << 1);
- flag_sandbox = sandbox_none;
if (flags & (1 << 2))
- flag_sandbox = sandbox_setuid;
+ flag_sandbox_setuid = true;
else if (flags & (1 << 3))
- flag_sandbox = sandbox_namespace;
+ flag_sandbox_namespace = true;
else if (flags & (1 << 4))
- flag_sandbox = sandbox_android_untrusted_app;
+ flag_sandbox_android = true;
+ else
+ flag_sandbox_none = true;
flag_extra_coverage = flags & (1 << 5);
flag_net_injection = flags & (1 << 6);
flag_net_devices = flags & (1 << 7);