client: Increase passphrase buffer to accommodate for nil byte
PATCH 1/2 client: Increase passphrase buffer to accommodate for nil byte
--- client/display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
client/display.c +3 -2
@@ -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 ; }
Signature · 1 line
2.13.6
PATCH 2/2 client: Update rl_point to last known position
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(-)
client/display.c +3 -1
@@ -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; }
Signature · 1 line
2.13.6