summaryrefslogtreecommitdiffstats
path: root/swaylock
diff options
context:
space:
mode:
authorLibravatar Christoph Gysin <christoph.gysin@gmail.com>2016-01-24 13:33:24 +0200
committerLibravatar Christoph Gysin <christoph.gysin@gmail.com>2016-01-25 19:43:51 +0200
commitb116af629be03f4e44bca0adfe5f76eee278fbbc (patch)
treec89a298c997e680210d2e9a53ea604390a21b3a4 /swaylock
parentswaybar: Fix plaintext handling. (diff)
downloadsway-b116af629be03f4e44bca0adfe5f76eee278fbbc.tar.gz
sway-b116af629be03f4e44bca0adfe5f76eee278fbbc.tar.zst
sway-b116af629be03f4e44bca0adfe5f76eee278fbbc.zip
swaylock: remove global variable pam_reply
Diffstat (limited to 'swaylock')
-rw-r--r--swaylock/main.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/swaylock/main.c b/swaylock/main.c
index c01445e7..e04d0d62 100644
--- a/swaylock/main.c
+++ b/swaylock/main.c
@@ -36,11 +36,15 @@ void sway_terminate(void) {
36} 36}
37 37
38char *password; 38char *password;
39struct pam_response *pam_reply;
40 39
41int function_conversation(int num_msg, const struct pam_message **msg, 40int function_conversation(int num_msg, const struct pam_message **msg,
42 struct pam_response **resp, void *appdata_ptr) { 41 struct pam_response **resp, void *appdata_ptr) {
42
43 struct pam_response *pam_reply = malloc(sizeof(struct pam_response));
44 pam_reply[0].resp = password;
45 pam_reply[0].resp_retcode = 0;
43 *resp = pam_reply; 46 *resp = pam_reply;
47
44 return PAM_SUCCESS; 48 return PAM_SUCCESS;
45} 49}
46 50
@@ -57,9 +61,6 @@ bool verify_password(char *password) {
57 if ((pam_err = pam_start("swaylock", username, &local_conversation, &local_auth_handle)) != PAM_SUCCESS) { 61 if ((pam_err = pam_start("swaylock", username, &local_conversation, &local_auth_handle)) != PAM_SUCCESS) {
58 sway_abort("PAM returned %d\n", pam_err); 62 sway_abort("PAM returned %d\n", pam_err);
59 } 63 }
60 pam_reply = (struct pam_response *)malloc(sizeof(struct pam_response));
61 pam_reply[0].resp = password;
62 pam_reply[0].resp_retcode = 0;
63 if ((pam_err = pam_authenticate(local_auth_handle, 0)) != PAM_SUCCESS) { 64 if ((pam_err = pam_authenticate(local_auth_handle, 0)) != PAM_SUCCESS) {
64 memset(password, 0, strlen(password)); 65 memset(password, 0, strlen(password));
65 return false; 66 return false;