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 | 27 |
1 files changed, 27 insertions, 0 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 new file mode 100644 index 0000000000..f131b763ca --- /dev/null +++ b/meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | Index: util-linux-2.22.1/login-utils/login.c | ||
4 | =================================================================== | ||
5 | --- util-linux-2.22.1.orig/login-utils/login.c | ||
6 | +++ util-linux-2.22.1/login-utils/login.c | ||
7 | @@ -1239,6 +1239,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 | @@ -1252,7 +1254,10 @@ int main(int argc, char **argv) | ||
17 | timeout = (unsigned int)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 | + | ||
25 | alarm(timeout); | ||
26 | signal(SIGQUIT, SIG_IGN); | ||
27 | signal(SIGINT, SIG_IGN); | ||