[hackers] [PATCH slock] Properly clear the last entered character

From: Tobias Stoeckmann <tobias_AT_stoeckmann.org>
Date: Sat, 25 Mar 2017 21:16:01 +0100

When enter is pressed, passwd[len] will be set to '\0'. Pressing
backspace is supposed to remove the last entered character.

But currently, the clearing has an off-by-one, as in setting
passwd[len] to '\0' just like enter would do.

You can also verify it by imagining len=1 and that it's impossible to
clear passwd[0] by pressing backspace with the current code.

Signed-off-by: Tobias Stoeckmann <tobias_AT_stoeckmann.org>
---
 slock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/slock.c b/slock.c
index d55eb3d..5ae738c 100644
--- a/slock.c
+++ b/slock.c
_AT_@ -177,7 +177,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
 				break;
 			case XK_BackSpace:
 				if (len)
-					passwd[len--] = '\0';
+					passwd[--len] = '\0';
 				break;
 			default:
 				if (num && !iscntrl((int)buf[0]) &&
-- 
2.12.1
Received on Sat Mar 25 2017 - 21:16:01 CET

This archive was generated by hypermail 2.3.0 : Sat Mar 25 2017 - 21:24:16 CET