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