summaryrefslogtreecommitdiffstats
path: root/meta/packages/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch')
-rw-r--r--meta/packages/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/meta/packages/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch b/meta/packages/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch
new file mode 100644
index 0000000000..4b5eb73760
--- /dev/null
+++ b/meta/packages/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch
@@ -0,0 +1,23 @@
1Index: util-linux-ng-2.14/login-utils/login.c
2===================================================================
3--- util-linux-ng-2.14.orig/login-utils/login.c 2008-05-28 16:01:02.000000000 -0700
4+++ util-linux-ng-2.14/login-utils/login.c 2009-03-04 18:31:42.000000000 -0800
5@@ -358,6 +358,7 @@
6 char *childArgv[10];
7 char *buff;
8 int childArgc = 0;
9+ struct sigaction act;
10 #ifdef HAVE_SECURITY_PAM_MISC_H
11 int retcode;
12 pam_handle_t *pamh = NULL;
13@@ -373,7 +374,9 @@
14 pid = getpid();
15
16 signal(SIGALRM, timedout);
17- siginterrupt(SIGALRM,1); /* we have to interrupt syscalls like ioclt() */
18+ (void) sigaction(SIGALRM, NULL, &act);
19+ act.sa_flags &= ~SA_RESTART;
20+ sigaction(SIGALRM, &act, NULL);
21 alarm((unsigned int)timeout);
22 signal(SIGQUIT, SIG_IGN);
23 signal(SIGINT, SIG_IGN);