sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit dab651a240ad59722c3c23fcea6e2f91909b2a1b
parent 52fea936930d500edf7a1e257421049111d352f1
Author: Christoph Gysin <christoph.gysin@gmail.com>
Date:   Sun, 24 Jan 2016 14:35:28 +0200

swaylock: fix pam conversation

Diffstat:
Mswaylock/main.c | 20+++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/swaylock/main.c b/swaylock/main.c @@ -48,16 +48,26 @@ int function_conversation(int num_msg, const struct pam_message **msg, "PAM_TEXT_INFO", }; + /* PAM expects an array of responses, one for each message */ + struct pam_response *pam_reply = calloc(num_msg, sizeof(struct pam_response)); + *resp = pam_reply; + for(int i=0; i<num_msg; ++i) { sway_log(L_DEBUG, "msg[%d]: (%s) %s", i, msg_style_names[msg[i]->msg_style], msg[i]->msg); - } - struct pam_response *pam_reply = malloc(sizeof(struct pam_response)); - pam_reply[0].resp = password; - pam_reply[0].resp_retcode = 0; - *resp = pam_reply; + switch (msg[i]->msg_style) { + case PAM_PROMPT_ECHO_OFF: + case PAM_PROMPT_ECHO_ON: + pam_reply[i].resp = password; + break; + + case PAM_ERROR_MSG: + case PAM_TEXT_INFO: + break; + } + } return PAM_SUCCESS; }