aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/csource
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-10-19 11:06:05 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-10-19 11:06:05 +0200
commit3704c60135f96c02079274dad1a00b2dc3f846c9 (patch)
treef9694cd29a8bd1773f1e462094d78065d4ce53dd /pkg/csource
parentf26811f08042dfa5aa5463e35fb3ec9e56005dae (diff)
executor: fix build breakages due to doexit
Some standard libraries contain "using ::exit;", which breaks with the current redefinition of exit.
Diffstat (limited to 'pkg/csource')
-rw-r--r--pkg/csource/akaros_common.go17
-rw-r--r--pkg/csource/linux_common.go10
2 files changed, 21 insertions, 6 deletions
diff --git a/pkg/csource/akaros_common.go b/pkg/csource/akaros_common.go
index 669020aa8..88a80c638 100644
--- a/pkg/csource/akaros_common.go
+++ b/pkg/csource/akaros_common.go
@@ -31,7 +31,17 @@ var commonHeaderAkaros = `
#include <dirent.h>
#endif
-#define doexit exit
+#if defined(SYZ_EXECUTOR) || (defined(SYZ_REPEAT) && defined(SYZ_WAIT_REPEAT)) || \
+ defined(SYZ_USE_TMP_DIR) || defined(SYZ_HANDLE_SEGV) || defined(SYZ_TUN_ENABLE) || \
+ defined(SYZ_SANDBOX_NAMESPACE) || defined(SYZ_SANDBOX_SETUID) || \
+ defined(SYZ_SANDBOX_NONE) || defined(SYZ_FAULT_INJECTION) || defined(__NR_syz_kvm_setup_cpu)
+__attribute__((noreturn)) static void doexit(int status)
+{
+ _exit(status);
+ for (;;) {
+ }
+}
+#endif
@@ -55,6 +65,11 @@ var commonHeaderAkaros = `
#endif
#if defined(SYZ_EXECUTOR)
+#define exit vsnprintf
+#define _exit vsnprintf
+#endif
+
+#if defined(SYZ_EXECUTOR)
#if defined(__GNUC__)
#define SYSCALLAPI
#define NORETURN __attribute__((noreturn))
diff --git a/pkg/csource/linux_common.go b/pkg/csource/linux_common.go
index acc1647e4..2d84a9fbd 100644
--- a/pkg/csource/linux_common.go
+++ b/pkg/csource/linux_common.go
@@ -119,11 +119,6 @@ __attribute__((noreturn)) static void doexit(int status)
}
#endif
-#if defined(SYZ_EXECUTOR)
-#define exit use_doexit_instead
-#define _exit use_doexit_instead
-#endif
-
#include <stdint.h>
@@ -146,6 +141,11 @@ __attribute__((noreturn)) static void doexit(int status)
#endif
#if defined(SYZ_EXECUTOR)
+#define exit vsnprintf
+#define _exit vsnprintf
+#endif
+
+#if defined(SYZ_EXECUTOR)
#if defined(__GNUC__)
#define SYSCALLAPI
#define NORETURN __attribute__((noreturn))