diff options
author | Andreas Schneider <asn@samba.org> | 2018-06-25 10:39:51 +0200 |
---|---|---|
committer | Andreas Schneider <asn@samba.org> | 2018-09-20 12:07:01 +0200 |
commit | a331e42539d54a5cfdb6df41b5ec0d1b60043648 (patch) | |
tree | 8bed5c90ccb1a04db49fc4897b4939ccdbb54be6 | |
parent | 2bc513562c0fc0dc7c61a93bc1cf0e434227459b (diff) | |
download | pam_wrapper-a331e42539d54a5cfdb6df41b5ec0d1b60043648.tar.gz pam_wrapper-a331e42539d54a5cfdb6df41b5ec0d1b60043648.tar.xz pam_wrapper-a331e42539d54a5cfdb6df41b5ec0d1b60043648.zip |
libpamtest: Check that message count matches response count
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jakub Hrozek <jakub.hrozek@posteo.se>
-rw-r--r-- | src/libpamtest.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/libpamtest.c b/src/libpamtest.c index 0a26c19..74da180 100644 --- a/src/libpamtest.c +++ b/src/libpamtest.c @@ -214,12 +214,11 @@ static int pamtest_simple_conv(int num_msg, struct pam_response **response, void *appdata_ptr) { - int i, ri = 0; + int i = 0; int ret; struct pam_response *reply = NULL; const char *prompt; - struct pamtest_conv_ctx *cctx = \ - (struct pamtest_conv_ctx *) appdata_ptr; + struct pamtest_conv_ctx *cctx = (struct pamtest_conv_ctx *)appdata_ptr; if (cctx == NULL) { return PAM_CONV_ERR; @@ -241,15 +240,12 @@ static int pamtest_simple_conv(int num_msg, if (reply != NULL) { if (prompt != NULL) { - ret = add_to_reply(&reply[ri], prompt); + ret = add_to_reply(&reply[i], prompt); if (ret != PAM_SUCCESS) { free_reply(reply, num_msg); return ret; } - } else { - reply[ri].resp = NULL; } - ri++; } cctx->echo_off_idx++; @@ -264,13 +260,12 @@ static int pamtest_simple_conv(int num_msg, if (reply != NULL) { if (prompt != NULL) { - ret = add_to_reply(&reply[ri], prompt); + ret = add_to_reply(&reply[i], prompt); if (ret != PAM_SUCCESS) { free_reply(reply, num_msg); return ret; } } - ri++; } cctx->echo_on_idx++; @@ -298,7 +293,7 @@ static int pamtest_simple_conv(int num_msg, } } - if (response && ri > 0) { + if (response != NULL) { *response = reply; } else { free(reply); |