diff options
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.patch | 15 |
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 @@ | |||
1 | Upstream-Status: Pending | 1 | Upstream-Status: Pending |
2 | 2 | ||
3 | Index: util-linux-2.21/login-utils/login.c | 3 | Index: 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); |