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 ef56048..f131b76 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 @@ Upstream-Status: Pending -Index: util-linux-2.21/login-utils/login.c +Index: util-linux-2.22.1/login-utils/login.c =================================================================== ---- util-linux-2.21.orig/login-utils/login.c -+++ util-linux-2.21/login-utils/login.c -@@ -1216,6 +1216,8 @@ int main(int argc, char **argv) +--- util-linux-2.22.1.orig/login-utils/login.c ++++ util-linux-2.22.1/login-utils/login.c +@@ -1239,6 +1239,8 @@ int main(int argc, char **argv) char *buff; int childArgc = 0; int retcode; @@ -13,14 +13,15 @@ Index: util-linux-2.21/login-utils/login.c char *pwdbuf = NULL; struct passwd *pwd = NULL, _pwd; -@@ -1229,7 +1231,9 @@ int main(int argc, char **argv) - timeout = getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT); +@@ -1252,7 +1254,10 @@ int main(int argc, char **argv) + timeout = (unsigned int)getlogindefs_num("LOGIN_TIMEOUT", LOGIN_TIMEOUT); signal(SIGALRM, timedout); - siginterrupt(SIGALRM, 1); /* we have to interrupt syscalls like ioclt() */ + (void) sigaction(SIGALRM, NULL, &act); + act.sa_flags &= ~SA_RESTART; + sigaction(SIGALRM, &act, NULL); - alarm((unsigned int)timeout); ++ + alarm(timeout); signal(SIGQUIT, SIG_IGN); signal(SIGINT, SIG_IGN); |