From a5653831fc650efbeb8333f2c8312d43b66b6470 Mon Sep 17 00:00:00 2001 From: ache Date: Sun, 6 Nov 2022 22:57:49 +0100 Subject: Empty password must be doubled --- src/main.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.c b/src/main.c index 2425dd0..769762e 100644 --- a/src/main.c +++ b/src/main.c @@ -111,6 +111,7 @@ static void handle_xsl_key_input(saver_state_t *state, const char c) // (See comment above for why this is separate) static bool handle_key_event(saver_state_t *state, XKeyEvent *event) { + static int forceEmptyPass = 0; if (!state->input_allowed) return false; KeySym key; @@ -126,7 +127,14 @@ static bool handle_key_event(saver_state_t *state, XKeyEvent *event) password_buf[length - 1] = '\0'; } } else if (XK_Return == key) { - accept_password(state); + char *password_buf = state->password_buffer; + size_t pw_len = strlen(password_buf); + + if( pw_len > 0 || forceEmptyPass) { + accept_password(state); + } else { + forceEmptyPass = 4; + } } else if (strlen(keybuf) > 0) { if (length + 1 < kMaxPasswordLength) { password_buf[length] = keybuf[0]; @@ -136,6 +144,8 @@ static bool handle_key_event(saver_state_t *state, XKeyEvent *event) handled = false; } + forceEmptyPass >>= 1; + return handled; } -- cgit v1.2.3