summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch')
-rw-r--r--meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch15
1 files changed, 8 insertions, 7 deletions
diff --git a/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch b/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch
index ef56048c60..f131b763ca 100644
--- a/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch
+++ b/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch
@@ -1,10 +1,10 @@
1Upstream-Status: Pending 1Upstream-Status: Pending
2 2
3Index: util-linux-2.21/login-utils/login.c 3Index: util-linux-2.22.1/login-utils/login.c
4=================================================================== 4===================================================================
5--- util-linux-2.21.orig/login-utils/login.c 5--- util-linux-2.22.1.orig/login-utils/login.c
6+++ util-linux-2.21/login-utils/login.c 6+++ util-linux-2.22.1/login-utils/login.c
7@@ -1216,6 +1216,8 @@ int main(int argc, char **argv) 7@@ -1239,6 +1239,8 @@ int main(int argc, char **argv)
8 char *buff; 8 char *buff;
9 int childArgc = 0; 9 int childArgc = 0;
10 int retcode; 10 int retcode;
@@ -13,14 +13,15 @@ Index: util-linux-2.21/login-utils/login.c
13 13
14 char *pwdbuf = NULL; 14 char *pwdbuf = NULL;
15 struct passwd *pwd = NULL, _pwd; 15 struct passwd *pwd = NULL, _pwd;
16@@ -1229,7 +1231,9 @@ int main(int argc, char **argv) 16@@ -1252,7 +1254,10 @@ int main(int argc, char **argv)
17 timeout = getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT); 17 timeout = (unsigned int)getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT);
18 18
19 signal(SIGALRM, timedout); 19 signal(SIGALRM, timedout);
20- siginterrupt(SIGALRM, 1); /* we have to interrupt syscalls like ioclt() */ 20- siginterrupt(SIGALRM, 1); /* we have to interrupt syscalls like ioclt() */
21+ (void) sigaction(SIGALRM, NULL, &act); 21+ (void) sigaction(SIGALRM, NULL, &act);
22+ act.sa_flags &= ~SA_RESTART; 22+ act.sa_flags &= ~SA_RESTART;
23+ sigaction(SIGALRM, &act, NULL); 23+ sigaction(SIGALRM, &act, NULL);
24 alarm((unsigned int)timeout); 24+
25 alarm(timeout);
25 signal(SIGQUIT, SIG_IGN); 26 signal(SIGQUIT, SIG_IGN);
26 signal(SIGINT, SIG_IGN); 27 signal(SIGINT, SIG_IGN);