When suspending your system to RAM, a race-condition can occur which
causes many enter keypresses to be sent. These effectively delay
your login by 3 seconds times 50 times (or so), so we just skip empty
passwords. If your password is empty, you don’t need to lock your
screen anyway.
switch(ksym) {
case XK_Return:
passwd[len] = 0;
+ /* Skip empty passwords */
+ if (len == 0)
+ continue;
if ((ret = pam_authenticate(handle, 0)) == PAM_SUCCESS)
running = false;
else {