From 4e4b77279e9fdccc20a6871c68f6bf053df7a1f6 Mon Sep 17 00:00:00 2001 From: Kevin Coffman Date: Fri, 1 Dec 2006 19:36:38 +0000 Subject: send a new request with the new padata returned by krb5_do_preauth_tryagain() Send another request containing the padata obtained from tryagain. * src/include/k5-int.h Update prototype * src/lib/krb5/krb/get_in_tkt.c Send pointer to the request.padata so krb5_do_preauth_tryagain() can update the request to be sent. * src/lib/krb5/krb/preauth2.c If a module returns modified padata, add it to the return_padata and return. ticket: new Component: krb5-libs Target_Version: 1.6 Tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18896 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/krb5/krb/get_in_tkt.c | 2 +- src/lib/krb5/krb/preauth2.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'src/lib') 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; } } -- cgit