systemd asking for password on boot: ask_password_tty() prints multiple asterisks when typing special characters (#1301984)
Resolves: #1301984
This commit is contained in:
parent
b1b71981b2
commit
743659b0b9
|
@ -0,0 +1,56 @@
|
|||
From ae6d86c079a73eeb6554b37ec57436d748527b02 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 26 Jan 2016 17:05:38 -0500
|
||||
Subject: [PATCH 4/6] ask-password-api: only emit a star on valid unicode
|
||||
codepoint
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1301984
|
||||
(cherry picked from commit f3149d57b6e4c9e9abd3525c5266e0e258e8572d)
|
||||
|
||||
Resolves: #1301984
|
||||
---
|
||||
src/shared/ask-password-api.c | 14 ++++++++++----
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/shared/ask-password-api.c b/src/shared/ask-password-api.c
|
||||
index 3941605..f26b28f 100644
|
||||
--- a/src/shared/ask-password-api.c
|
||||
+++ b/src/shared/ask-password-api.c
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "terminal-util.h"
|
||||
#include "signal-util.h"
|
||||
#include "ask-password-api.h"
|
||||
+#include "utf8.h"
|
||||
|
||||
static void backspace_chars(int ttyfd, size_t p) {
|
||||
|
||||
@@ -60,8 +61,8 @@ int ask_password_tty(
|
||||
char **_passphrase) {
|
||||
|
||||
struct termios old_termios, new_termios;
|
||||
- char passphrase[LINE_MAX], *x;
|
||||
- size_t p = 0;
|
||||
+ char passphrase[LINE_MAX + 1] = {}, *x;
|
||||
+ size_t p = 0, codepoint = 0;
|
||||
int r;
|
||||
_cleanup_close_ int ttyfd = -1, notify = -1;
|
||||
struct pollfd pollfd[2];
|
||||
@@ -221,8 +222,13 @@ int ask_password_tty(
|
||||
|
||||
passphrase[p++] = c;
|
||||
|
||||
- if (!silent_mode && ttyfd >= 0)
|
||||
- loop_write(ttyfd, echo ? &c : "*", 1, false);
|
||||
+ if (!silent_mode && ttyfd >= 0) {
|
||||
+ n = utf8_encoded_valid_unichar(passphrase + codepoint);
|
||||
+ if (n >= 0) {
|
||||
+ codepoint = p;
|
||||
+ loop_write(ttyfd, echo ? &c : "*", 1, false);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
dirty = true;
|
||||
}
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -115,6 +115,7 @@ Patch0079: 0079-machined-rework-state-tracking-logic-for-machines.patch
|
|||
Patch0080: 0080-tests-don-t-abbreviate-function-names-needlessly.patch
|
||||
Patch0081: 0081-basic-don-t-append-suffixes-to-unit-name-glob-expres.patch
|
||||
Patch0082: 0082-man-document-that-unit-file-globbing-only-operates-o.patch
|
||||
Patch0083: 0083-ask-password-api-only-emit-a-star-on-valid-unicode-c.patch
|
||||
|
||||
Patch997: 0001-Re-apply-walters-unit-patch-for-F23-systemd-v222.patch
|
||||
Patch998: 0001-Revert-core-mount-add-dependencies-to-dynamically-mo-v222.patch
|
||||
|
@ -857,6 +858,7 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd
|
|||
%changelog
|
||||
* Mon Feb 1 2016 Jan Synáček <jsynacek@redhat.com> - 222-14
|
||||
- Stopping services using glob patterns does not work as stated in man page (#1288851)
|
||||
- systemd asking for password on boot: ask_password_tty() prints multiple asterisks when typing special characters (#1301984)
|
||||
|
||||
* Mon Jan 25 2016 Jan Synáček <jsynacek@redhat.com> - 222-13
|
||||
- units: increase watchdog timeout to 3min for all our services
|
||||
|
|
Loading…
Reference in New Issue