From 117109b89a4baa514e7c7c2090b4226ffd69f933 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Sat, 7 May 2011 23:14:06 -0400 Subject: [PATCH] e2fsck: make the "fs is mounted; continue?" prompt more paranoid A user received the "file system is mounted; do you really want to continue" prompt, and then instead of typing "n" for no, forgot that he hadn't declined to continuation question, and typed the up-arrow key, which in his locale, the 'A' in "^[[A" was interpreted as "yes", and he lost data. This was clearly the user's fault, but to make e2fsck a bit safer against user stupidity/carelessness, we will change the "fs is mounted; continue?" prompt to default to no, and treat the escape character (along with the return and space characters, currently) as a request for the default answer. Addresses-Debian-Bug: #619859 Signed-off-by: "Theodore Ts'o" --- e2fsck/unix.c | 2 +- e2fsck/util.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/e2fsck/unix.c b/e2fsck/unix.c index 73cc2cf..998aa07 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -233,7 +233,7 @@ static void check_mount(e2fsck_t ctx) printf(_("\n\n\007\007\007\007WARNING!!! " "The filesystem is mounted. If you continue you ***WILL***\n" "cause ***SEVERE*** filesystem damage.\007\007\007\n\n")); - cont = ask_yn(_("Do you really want to continue"), -1); + cont = ask_yn(_("Do you really want to continue"), 0); if (!cont) { printf (_("check aborted.\n")); exit (0); diff --git a/e2fsck/util.c b/e2fsck/util.c index fa156a1..fb9a87a 100644 --- a/e2fsck/util.c +++ b/e2fsck/util.c @@ -180,7 +180,7 @@ int ask_yn(const char * string, int def) def = 0; break; } - else if ((c == ' ' || c == '\n') && (def != -1)) + else if ((c == 27 || c == ' ' || c == '\n') && (def != -1)) break; } if (def) -- 1.8.3.1