login

<     >

2015-04-16 22:25:57 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

Don't uninstall signal handlers if fork() fails.

diff --git a/rover.c b/rover.c
index fc73e34..f0c8d42 100644
--- a/rover.c
+++ b/rover.c
@@ -597,13 +597,13 @@ spawn()
     int status;
     struct sigaction sa;
 
-    memset(&sa, 0, sizeof (struct sigaction));
-    sa.sa_handler = SIG_DFL;
-    sigaction(SIGSEGV, &sa, NULL);
-    sigaction(SIGWINCH, &sa, NULL);
     pid = fork();
     if (pid > 0) {
         /* fork() succeeded. */
+        memset(&sa, 0, sizeof (struct sigaction));
+        sa.sa_handler = SIG_DFL;
+        sigaction(SIGSEGV, &sa, NULL);
+        sigaction(SIGWINCH, &sa, NULL);
         endwin();
         waitpid(pid, &status, 0);
         init_term();