aboutsummaryrefslogtreecommitdiffstats
path: root/executor/common.h
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-09-27 11:44:15 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-09-27 18:59:50 +0200
commitbdffe2484cfffefd2f3321cb42890be70887cf44 (patch)
treed0479d4e02301160ddb11c09f154d115cc70d80f /executor/common.h
parent11fc874fb5c0446e3eebe3a3ca4bad19c6407505 (diff)
executor: fix execution of windows syscalls
First, they must be called with stdcall convention. Second, wrap them in __try/__except because they can crash.
Diffstat (limited to 'executor/common.h')
-rw-r--r--executor/common.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/executor/common.h b/executor/common.h
index f5b525cc4..a283f7fbe 100644
--- a/executor/common.h
+++ b/executor/common.h
@@ -23,7 +23,11 @@
#endif
#if defined(SYZ_EXECUTOR)
-typedef long (*syscall_t)(long, long, long, long, long, long, long, long, long);
+#ifndef SYSCALLAPI
+#define SYSCALLAPI
+#endif
+
+typedef long(SYSCALLAPI* syscall_t)(long, long, long, long, long, long, long, long, long);
struct call_t {
const char* name;
@@ -156,4 +160,4 @@ static uint16_t csum_inet_digest(struct csum_inet* csum)
{
return ~csum->acc;
}
-#endif \ No newline at end of file
+#endif