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