]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - unix/signal.c
Fix divide overflow in internal_mod(). Thanks to William Petiot for
[PuTTY.git] / unix / signal.c
index 4e103b734b5fa31eec0d633cc459c6d962b90119..9b0ad5eacb806cab933d35e70d2e2e9015755bc1 100644 (file)
@@ -1,4 +1,6 @@
 #include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
 
 /*
  * Calling signal() is a non-portable, as it varies in meaning between
@@ -23,6 +25,18 @@ void (*putty_signal(int sig, void (*func)(int)))(int) {
     return old.sa_handler;
 }
 
+void block_signal(int sig, int block_it)
+{
+    sigset_t ss;
+
+    sigemptyset(&ss);
+    sigaddset(&ss, sig);
+    if(sigprocmask(block_it ? SIG_BLOCK : SIG_UNBLOCK, &ss, 0) < 0) {
+       perror("sigprocmask");
+       exit(1);
+    }
+}
+
 /*
 Local Variables:
 c-basic-offset:4