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.patch24
1 files changed, 15 insertions, 9 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 f131b763ca..6717a75a90 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,27 +1,33 @@
1Upstream-Status: Pending 1Upstream-Status: Pending
2 2
3Index: util-linux-2.22.1/login-utils/login.c 3Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
4=================================================================== 4---
5--- util-linux-2.22.1.orig/login-utils/login.c 5 login-utils/login.c | 5 ++++-
6+++ util-linux-2.22.1/login-utils/login.c 6 1 file changed, 4 insertions(+), 1 deletion(-)
7@@ -1239,6 +1239,8 @@ int main(int argc, char **argv) 7
8diff --git a/login-utils/login.c b/login-utils/login.c
9index ebb76f5..38c881b 100644
10--- a/login-utils/login.c
11+++ b/login-utils/login.c
12@@ -1110,6 +1110,7 @@ int main(int argc, char **argv)
8 char *buff; 13 char *buff;
9 int childArgc = 0; 14 int childArgc = 0;
10 int retcode; 15 int retcode;
11+ struct sigaction act; 16+ struct sigaction act;
12+
13 17
14 char *pwdbuf = NULL; 18 char *pwdbuf = NULL;
15 struct passwd *pwd = NULL, _pwd; 19 struct passwd *pwd = NULL, _pwd;
16@@ -1252,7 +1254,10 @@ int main(int argc, char **argv) 20@@ -1123,7 +1124,9 @@ int main(int argc, char **argv)
17 timeout = (unsigned int)getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT); 21 timeout = (unsigned int)getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT);
18 22
19 signal(SIGALRM, timedout); 23 signal(SIGALRM, timedout);
20- siginterrupt(SIGALRM, 1); /* we have to interrupt syscalls like ioclt() */ 24- siginterrupt(SIGALRM, 1); /* we have to interrupt syscalls like ioctl() */
21+ (void) sigaction(SIGALRM, NULL, &act); 25+ (void) sigaction(SIGALRM, NULL, &act);
22+ act.sa_flags &= ~SA_RESTART; 26+ act.sa_flags &= ~SA_RESTART;
23+ sigaction(SIGALRM, &act, NULL); 27+ sigaction(SIGALRM, &act, NULL);
24+
25 alarm(timeout); 28 alarm(timeout);
26 signal(SIGQUIT, SIG_IGN); 29 signal(SIGQUIT, SIG_IGN);
27 signal(SIGINT, SIG_IGN); 30 signal(SIGINT, SIG_IGN);
31--
321.9.1
33