---
client/display.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/client/display.c b/client/display.c
index cd17ad84..74b50e2e 100644
--- a/client/display.c
+++ b/client/display.c
@@ -397,7 +397,7 @@ static void display_completion_matches(char **matches, int
num_matches,
static struct masked_input {
bool use_mask;
- char passphrase[MAX_PASSPHRASE_LEN];
+ char passphrase[MAX_PASSPHRASE_LEN + 1];
uint8_t point;
uint8_t end;
} masked_input;
@@ -436,6 +436,7 @@ static void mask_input(void)
masked_input.passphrase + masked_input.point
+ 1,
rl_end - rl_point);
+
memset(masked_input.passphrase + rl_end, 0,
masked_input.end - rl_end);
}
@@ -453,7 +454,7 @@ done:
static void reset_masked_input(void)
{
- memset(masked_input.passphrase, 0, MAX_PASSPHRASE_LEN);
+ memset(masked_input.passphrase, 0, MAX_PASSPHRASE_LEN + 1);
masked_input.point = 0;
masked_input.end = 0;
}
--
2.13.6
Show replies by thread
Keep cursor's position consistent when passphrase is reaching
its maximum by adding characters in the middle of the string
This isn't practical behavior.
---
client/display.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/client/display.c b/client/display.c
index 74b50e2e..fc280d31 100644
--- a/client/display.c
+++ b/client/display.c
@@ -408,7 +408,9 @@ static void mask_input(void)
return;
if (rl_end > MAX_PASSPHRASE_LEN) {
- rl_point = rl_end = MAX_PASSPHRASE_LEN;
+ rl_end = MAX_PASSPHRASE_LEN;
+ rl_point = masked_input.point;
+
goto set_mask;
}
--
2.13.6