26 lines
875 B
Diff
26 lines
875 B
Diff
Upstream-Status: Pending
|
|
|
|
Index: util-linux-ng-2.14/login-utils/login.c
|
|
===================================================================
|
|
--- util-linux-ng-2.14.orig/login-utils/login.c 2008-05-28 16:01:02.000000000 -0700
|
|
+++ util-linux-ng-2.14/login-utils/login.c 2009-03-04 18:31:42.000000000 -0800
|
|
@@ -358,6 +358,7 @@
|
|
char *childArgv[10];
|
|
char *buff;
|
|
int childArgc = 0;
|
|
+ struct sigaction act;
|
|
#ifdef HAVE_SECURITY_PAM_MISC_H
|
|
int retcode;
|
|
pam_handle_t *pamh = NULL;
|
|
@@ -373,7 +374,9 @@
|
|
pid = getpid();
|
|
|
|
signal(SIGALRM, timedout);
|
|
- siginterrupt(SIGALRM,1); /* we have to interrupt syscalls like ioclt() */
|
|
+ (void) sigaction(SIGALRM, NULL, &act);
|
|
+ act.sa_flags &= ~SA_RESTART;
|
|
+ sigaction(SIGALRM, &act, NULL);
|
|
alarm((unsigned int)timeout);
|
|
signal(SIGQUIT, SIG_IGN);
|
|
signal(SIGINT, SIG_IGN);
|