diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-06-08 15:46:14 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-06-08 15:46:14 +0200 |
commit | c162a63997a3592f4d8a031cd31ee31bd1f17353 (patch) | |
tree | 41743b4bbc532fc03b5db7c64c9db50ee0591c88 /tests/mock_pam.c | |
parent | 3dcfac9148de47b625e421092ab4d6f407bd623d (diff) | |
parent | a5f1e6f66a82a3630919353a396e77845586121b (diff) | |
download | libpam-x2go-master.tar.gz libpam-x2go-master.tar.bz2 libpam-x2go-master.zip |
Attributes GH PR #3: https://github.com/ArcticaProject/libpam-x2go/pull/3
Diffstat (limited to 'tests/mock_pam.c')
-rw-r--r-- | tests/mock_pam.c | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/tests/mock_pam.c b/tests/mock_pam.c index 9111092..21fdde3 100644 --- a/tests/mock_pam.c +++ b/tests/mock_pam.c @@ -21,29 +21,34 @@ struct pam_handle { /* note: the other fields have been omitted */ }; -int fake_conv (int num_msg, const struct pam_message **msg, - struct pam_response **resp, void *appdata_ptr) +int fake_conv (int __attribute__((unused)) num_msg, + const struct pam_message **msg, + struct pam_response **resp, + void __attribute__((unused)) *appdata_ptr) { struct pam_response *response = NULL; response = malloc (sizeof (struct pam_response)); - if (response == NULL) + if (response == NULL) { return PAM_BUF_ERR; + } response->resp_retcode = 0; - if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_GUESTLOGIN) == 0) + if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_GUESTLOGIN) == 0) { response->resp = strdup ("guest"); /* IMPORTANT: this needs to be in /etc/passwd */ - else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_USER) == 0) + } else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_USER) == 0) { response->resp = strdup ("ruser"); - else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_HOST) == 0) + } else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_HOST) == 0) { response->resp = strdup ("protocol://rhost/dummy"); - else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_PASSWORD) == 0) + } else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_PASSWORD) == 0) { response->resp = strdup ("password"); - else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_COMMAND) == 0) + } else if (strcmp((*msg)->msg, PAM_X2GO_PROMPT_COMMAND) == 0) { response->resp = strdup ("rcommand"); - else + } else { + free(response); return PAM_SYMBOL_ERR; /* leaks... */ + } *resp = response; @@ -66,23 +71,26 @@ pam_handle_t *pam_handle_new (void) int PAM_NONNULL((1)) pam_get_item (const pam_handle_t *pamh, int type, const void **value) { - if (pamh == NULL) + if (pamh == NULL) { return PAM_SYSTEM_ERR; + } - if (type == PAM_CONV) + if (type == PAM_CONV) { *value = pamh->conv; - else if (pamh->item[type] != NULL) + } else if (pamh->item[type] != NULL) { *value = pamh->item[type]; - else + } else { *value = NULL; /* will result in a prompt conversation */ + } return PAM_SUCCESS; } int PAM_NONNULL((1)) pam_set_item (pam_handle_t *pamh, int type, const void *value) { - if (pamh == NULL) + if (pamh == NULL) { return PAM_SYSTEM_ERR; + } void **slot, *tmp; size_t nsize, osize; @@ -90,10 +98,12 @@ int PAM_NONNULL((1)) pam_set_item (pam_handle_t *pamh, int type, const void *val slot = &pamh->item[type]; osize = nsize = 0; - if (*slot != NULL) + if (*slot != NULL) { osize = strlen((const char *)*slot) + 1; - if (value != NULL) + } + if (value != NULL) { nsize = strlen((const char *)value) + 1; + } if (*slot != NULL) { memset(*slot, 0xd0, osize); |