aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2018-06-25 10:39:51 +0200
committerAndreas Schneider <asn@samba.org>2018-09-20 12:07:01 +0200
commita331e42539d54a5cfdb6df41b5ec0d1b60043648 (patch)
tree8bed5c90ccb1a04db49fc4897b4939ccdbb54be6
parent2bc513562c0fc0dc7c61a93bc1cf0e434227459b (diff)
downloadpam_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.c15
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);