From: Sami Kerola Date: Sat, 13 Apr 2013 19:54:40 +0000 (+0100) Subject: agetty: check writing to a file was successful X-Git-Tag: v2.24-rc1~599 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1aba8336c094e26d189ce792606ecbac246209ce;p=thirdparty%2Futil-linux.git agetty: check writing to a file was successful Signed-off-by: Sami Kerola --- diff --git a/term-utils/agetty.c b/term-utils/agetty.c index a23cf6dc27..dd52f700ff 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -235,6 +235,9 @@ static void login_options_to_argv(char *argv[], int *argc, char *str, char *user static char *fakehost; #ifdef DEBUGGING +#ifndef +# define DEBUG_OUTPUT "/dev/ttyp0" +#endif #define debug(s) do { fprintf(dbf,s); fflush(dbf); } while (0) FILE *dbf; #else @@ -270,7 +273,7 @@ int main(int argc, char **argv) sigaction(SIGINT, &sa, &sa_int); #ifdef DEBUGGING - dbf = fopen("/dev/ttyp0", "w"); + dbf = fopen(DEBUG_OUTPUT, "w"); for (int i = 1; i < argc; i++) debug(argv[i]); #endif /* DEBUGGING */ @@ -420,6 +423,12 @@ int main(int argc, char **argv) options.tty); } +#ifdef DEBUGGING + fprintf(dbf, "read %c\n", ch); + if (close_stream(dbf) != 0) + log_err("write failed: %s", DEBUG_OUTPUT); +#endif + /* Let the login program take care of password validation. */ execv(options.login, login_argv); log_err(_("%s: can't exec %s: %m"), options.tty, login_argv[0]);