]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Always supply a padata item to the return callback in a preauth plugin so that callba...
authorSam Hartman <hartmans@mit.edu>
Wed, 23 Dec 2009 21:11:12 +0000 (21:11 +0000)
committerSam Hartman <hartmans@mit.edu>
Wed, 23 Dec 2009 21:11:12 +0000 (21:11 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/anonymous@23516 dc483132-0cff-0310-8789-dd5450dbe970

src/kdc/kdc_preauth.c

index 2262c89560a4a5820694fdcba2962a1ca6b6bd2b..d14b18333e340a4a24a1d292dfb5a8005ffb83fd 100644 (file)
@@ -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;
 
     /*