From: Sam Hartman Date: Wed, 23 Dec 2009 21:11:12 +0000 (+0000) Subject: Always supply a padata item to the return callback in a preauth plugin so that callba... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=486b2853b80b39ad75c332ff6591259ce25f189b;p=thirdparty%2Fkrb5.git Always supply a padata item to the return callback in a preauth plugin so that callback can determine what type of padata it is requested to return. If there is no item in the request, synthesize an empty one git-svn-id: svn://anonsvn.mit.edu/krb5/branches/anonymous@23516 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/kdc/kdc_preauth.c b/src/kdc/kdc_preauth.c index 2262c89560..d14b18333e 100644 --- a/src/kdc/kdc_preauth.c +++ b/src/kdc/kdc_preauth.c @@ -1275,6 +1275,7 @@ return_padata(krb5_context context, krb5_db_entry *client, krb5_data *req_pkt, krb5_pa_data ** send_pa_list; krb5_pa_data ** send_pa; krb5_pa_data * pa = 0; + krb5_pa_data null_item; krb5_preauth_systems * ap; int * pa_order; int * pa_type; @@ -1308,7 +1309,8 @@ return_padata(krb5_context context, krb5_db_entry *client, krb5_data *req_pkt, return retval; } key_modified = FALSE; - + null_item.contents = NULL; + null_item.length = NULL; send_pa = send_pa_list; *send_pa = 0; @@ -1330,7 +1332,8 @@ return_padata(krb5_context context, krb5_db_entry *client, krb5_data *req_pkt, continue; if (find_pa_context(ap, *padata_context, &pa_context)) continue; - pa = 0; + pa = &null_item; + null_item.pa_type = ap->type; if (request->padata) { for (padata = request->padata; *padata; padata++) { if ((*padata)->pa_type == ap->type) { @@ -1900,7 +1903,7 @@ return_sam_data(krb5_context context, krb5_pa_data *in_padata, krb5_sam_response *sr = 0; krb5_predicted_sam_response *psr = 0; - if (in_padata == 0) + if (in_padata->contents == 0) return 0; /*