From 1760d167b2c0f91069a8b6e4a8fef1a5bc0f9ed1 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 624e11b5..f4792a54 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -232,7 +232,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 56c6b354..6c3117da 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) -- 2.11.0