[systemd-devel] [PATCH 3/3] ask-password: avoid printing stars

Jan Engelhardt jengelh at medozas.de
Tue Mar 15 19:50:41 PDT 2011


Do like many other console programs (such as /bin/passwd) and avoid
printing any stars to not give away any information to potential
bystanders.

Signed-off-by: Jan Engelhardt <jengelh at medozas.de>
---
 src/ask-password-api.c |   21 +++++++--------------
 1 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/src/ask-password-api.c b/src/ask-password-api.c
index 66bf480..332d616 100644
--- a/src/ask-password-api.c
+++ b/src/ask-password-api.c
@@ -78,6 +78,7 @@ int ask_password_tty(
                 loop_write(ttyfd, "\x1B[1m", 4, false);
                 loop_write(ttyfd, message, strlen(message), false);
                 loop_write(ttyfd, "\x1B[0m", 4, false);
+                loop_write(ttyfd, " (Answer will not be shown)", 27, false);
                 loop_write(ttyfd, " (Ctrl-U to clear) ", 19, false);
 
                 new_termios = old_termios;
@@ -157,25 +158,17 @@ int ask_password_tty(
                         break;
                 else if (c == 21) {
 
-                        while (p > 0) {
+                        while (p > 0)
                                 p--;
-
-                                if (ttyfd >= 0)
-                                        loop_write(ttyfd, "\b \b", 3, false);
-                        }
-
                 } else if (c == '\b' || c == 127) {
-                        if (p > 0) {
+                        if (p > 0)
                                 p--;
-
-                                if (ttyfd >= 0)
-                                        loop_write(ttyfd, "\b \b", 3, false);
-                        }
                 } else {
+		        /*
+		         * Not printing anything on purpose - like
+		         * passwd(8) does.
+		         */
                         passphrase[p++] = c;
-
-                        if (ttyfd >= 0)
-                                loop_write(ttyfd, "*", 1, false);
                 }
         }
 
-- 
1.7.1



More information about the systemd-devel mailing list