diff options
author | Christoph Gysin <christoph.gysin@gmail.com> | 2016-01-24 13:33:24 +0200 |
---|---|---|
committer | Christoph Gysin <christoph.gysin@gmail.com> | 2016-01-25 19:43:51 +0200 |
commit | b116af629be03f4e44bca0adfe5f76eee278fbbc (patch) | |
tree | c89a298c997e680210d2e9a53ea604390a21b3a4 /swaylock | |
parent | swaybar: Fix plaintext handling. (diff) | |
download | sway-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.c | 9 |
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 | ||
38 | char *password; | 38 | char *password; |
39 | struct pam_response *pam_reply; | ||
40 | 39 | ||
41 | int function_conversation(int num_msg, const struct pam_message **msg, | 40 | int 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; |