It's possible to send ourselves a SIGINT using F_SETSIG. This is then
interpreted as a Ctrl-c from the user and trinity quits.
Avoid SIGINT, instead use 0, which switches back to the default
behaviour of sending SIGIO.
---
syscalls/fcntl.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/syscalls/fcntl.c b/syscalls/fcntl.c
index 5d651af..e13735d 100644
--- a/syscalls/fcntl.c
+++ b/syscalls/fcntl.c
@@ -18,6 +18,7 @@
*/
#include <fcntl.h>
+#include <signal.h>
#include "random.h"
#include "sanitise.h"
#include "shm.h"
@@ -90,6 +91,8 @@ void sanitise_fcntl(int childno)
case F_SETSIG:
shm->a3[childno] = (unsigned long) rand32();
+ if (shm->a3[childno] == SIGINT)
+ shm->a3[childno] = 0; /* restore default (SIGIO) */
break;
case F_NOTIFY:
--
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe trinity" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html