From 2b428defd5a09d7d301bd024f1658e0f152e3f7f Mon Sep 17 00:00:00 2001 From: K Lange Date: Mon, 27 Sep 2021 21:18:32 +0900 Subject: [PATCH] login: Return 2 when 'disconnect' is provided as a username --- apps/login-loop.c | 5 +++-- apps/login.c | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/login-loop.c b/apps/login-loop.c index d1d57833..79ff6a32 100644 --- a/apps/login-loop.c +++ b/apps/login-loop.c @@ -201,10 +201,11 @@ int main(int argc, char * argv[]) { }; execvp(args[0], args); } else { - int result; + int result, status; do { - result = waitpid(f, NULL, 0); + result = waitpid(f, &status, 0); } while (result < 0); + if (WEXITSTATUS(status) == 2) break; } } diff --git a/apps/login.c b/apps/login.c index 911294c6..2842c076 100644 --- a/apps/login.c +++ b/apps/login.c @@ -99,6 +99,10 @@ int main(int argc, char ** argv) { system("reboot"); } + if (!strcmp(username, "disconnect")) { + return 2; + } + fprintf(stdout, "password: "); fflush(stdout);