summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/krb/get_in_tkt.c2
-rw-r--r--src/lib/krb5/krb/preauth2.c7
2 files changed, 4 insertions, 5 deletions
diff --git a/src/lib/krb5/krb/get_in_tkt.c b/src/lib/krb5/krb/get_in_tkt.c
index a71d98d41..9cf022fe8 100644
--- a/src/lib/krb5/krb/get_in_tkt.c
+++ b/src/lib/krb5/krb/get_in_tkt.c
@@ -1120,7 +1120,7 @@ krb5_get_init_creds(krb5_context context,
&request,
encoded_request_body,
encoded_previous_request,
- preauth_to_use,
+ preauth_to_use, &request.padata,
err_reply,
&salt, &s2kparams, &etype, &as_key,
prompter, prompter_data,
diff --git a/src/lib/krb5/krb/preauth2.c b/src/lib/krb5/krb/preauth2.c
index 81b7e2c57..7c34ca206 100644
--- a/src/lib/krb5/krb/preauth2.c
+++ b/src/lib/krb5/krb/preauth2.c
@@ -1290,6 +1290,7 @@ krb5_do_preauth_tryagain(krb5_context kcontext,
krb5_data *encoded_request_body,
krb5_data *encoded_previous_request,
krb5_pa_data **padata,
+ krb5_pa_data ***return_padata,
krb5_error *err_reply,
krb5_data *salt, krb5_data *s2kparams,
krb5_enctype *etype,
@@ -1303,6 +1304,7 @@ krb5_do_preauth_tryagain(krb5_context kcontext,
krb5_preauth_context *context;
struct _krb5_preauth_context_module *module;
int i, j;
+ int out_pa_list_size = 0;
ret = KRB_ERR_GENERIC;
if (kcontext->preauth_context == NULL) {
@@ -1338,10 +1340,7 @@ krb5_do_preauth_tryagain(krb5_context kcontext,
as_key,
&out_padata) == 0) {
if (out_padata != NULL) {
- if (padata[i]->contents != NULL)
- free(padata[i]->contents);
- free(padata[i]);
- padata[i] = out_padata;
+ grow_pa_list(return_padata, &out_pa_list_size, out_padata);
return 0;
}
}