parent
91787ff091
commit
8204238afb
@ -0,0 +1,35 @@
|
||||
--- qemu-2.10.0-rc3-clean/linux-user/syscall.c 2017-08-15 11:39:41.000000000 -0700
|
||||
+++ qemu-2.10.0-rc3/linux-user/syscall.c 2017-08-22 14:34:03.193088186 -0700
|
||||
@@ -116,6 +116,8 @@
|
||||
|
||||
#include "qemu.h"
|
||||
|
||||
+extern unsigned int afl_forksrv_pid;
|
||||
+
|
||||
#ifndef CLONE_IO
|
||||
#define CLONE_IO 0x80000000 /* Clone io context */
|
||||
#endif
|
||||
@@ -11688,8 +11690,21 @@
|
||||
break;
|
||||
|
||||
case TARGET_NR_tgkill:
|
||||
- ret = get_errno(safe_tgkill((int)arg1, (int)arg2,
|
||||
- target_to_host_signal(arg3)));
|
||||
+
|
||||
+ {
|
||||
+ int pid = (int)arg1,
|
||||
+ tgid = (int)arg2,
|
||||
+ sig = (int)arg3;
|
||||
+
|
||||
+ /* Not entirely sure if the below is correct for all architectures. */
|
||||
+
|
||||
+ if(afl_forksrv_pid && afl_forksrv_pid == pid && sig == SIGABRT)
|
||||
+ pid = tgid = getpid();
|
||||
+
|
||||
+ ret = get_errno(safe_tgkill(pid, tgid, target_to_host_signal(sig)));
|
||||
+
|
||||
+ }
|
||||
+
|
||||
break;
|
||||
|
||||
#ifdef TARGET_NR_set_robust_list
|
Loading…
Reference in new issue