File vlock-1.4.diff of Package vlock

--- input.c
+++ input.c
@@ -27,6 +27,7 @@
   */
 
 #define _XOPEN_SOURCE 1 /* so unistd.h will define crypt() */
+#define _GNU_SOURCE 1 /* strdup */
 #include <unistd.h>
 #ifdef SHADOW_PWD
   /* Shadow passwd support; THIS IS NOT SAFE with some very old versions
--- signals.c
+++ signals.c
@@ -18,6 +18,7 @@
 #include <sys/ioctl.h>
 #include <sys/vt.h>
 #include "vlock.h"
+#include <stdlib.h>
 
 
 /* In release_vt() and acquire_vt(), anything which is done in
@@ -49,6 +50,11 @@
   return;
 }
 
+void signal_huper(int signo) {
+  restore_signals();
+  restore_terminal();
+  exit(0);
+}
 
 
 
@@ -71,7 +77,7 @@
   sigaddset(&sig, SIGTSTP);
   sigaddset(&sig, SIGTTIN);
   sigaddset(&sig, SIGTTOU);
-  sigaddset(&sig, SIGHUP);
+  sigaddset(&sig, SIGTERM);
   sigaddset(&sig, SIGCHLD);
   sigaddset(&sig, SIGQUIT);
   sigaddset(&sig, SIGINT);
@@ -90,10 +96,14 @@
 
   /* Need to handle some signals so that we don't get killed by them */
   sa.sa_handler = signal_ignorer;
-  sigaction(SIGHUP, &sa, NULL);
+  sigaction(SIGTERM, &sa, NULL);
   sigaction(SIGQUIT, &sa, NULL);
   sigaction(SIGINT, &sa, NULL);
   sigaction(SIGTSTP, &sa, NULL);
+
+  /* Die cleanly on SIGHUP */
+  sa.sa_handler = signal_huper;
+  sigaction(SIGHUP, &sa, NULL);
 }
 
 
--- vlock.pamd
+++ vlock.pamd
@@ -1,2 +1,5 @@
 #%PAM-1.0
-auth       required	/lib/security/pam_pwdb.so shadow nullok
+auth     include        common-auth
+account  include        common-account
+password include        common-password
+session  include        common-session

openSUSE Build Service is sponsored by