kdc_preauth.c (get_preauth_hint_list): Fix missing indirection in
authorTheodore Tso <tytso@mit.edu>
Wed, 11 Oct 1995 02:17:04 +0000 (02:17 +0000)
committerTheodore Tso <tytso@mit.edu>
Wed, 11 Oct 1995 02:17:04 +0000 (02:17 +0000)
get_hint_list.

kdc_util.c (validate_as_request): Remove preauthentication check; this
is handled in do_as_req.c

do_as_req.c (process_as_request): Pass e_data to prepare_as_error so
that the proper preauthentication hint list can be passed back to the
client.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6960 dc483132-0cff-0310-8789-dd5450dbe970

src/kdc/ChangeLog
src/kdc/do_as_req.c
src/kdc/kdc_preauth.c
src/kdc/kdc_util.c

index 423e728366f5f5a41759b9e0719c2c9c4fec753c..741224227f73c6513b82c82ce418544b1196e497 100644 (file)
@@ -1,11 +1,19 @@
 Fri Oct  6 00:07:49 1995  Theodore Y. Ts'o  <tytso@dcl>
 
+       * kdc_preauth.c (get_preauth_hint_list): Fix missing indirection
+               in get_hint_list.
+
+       * kdc_util.c (validate_as_request): Remove preauthentication
+               check; this is handled in do_as_req.c
+
        * do_tgs_req.c (process_tgs_req): Use a slightly more compressed
                logging format.
 
        * do_as_req.c (process_as_req): Unify the logging and error packet
                production, to make sure that both logging and an error
-               packet is returned for each error condition.
+               packet is returned for each error condition.  Pass 
+               e_data to prepare_as_error so that the proper
+               preauthentication hint list can be passed back to the client.
 
 Thu Oct  5 21:23:12 1995  Theodore Y. Ts'o  <tytso@dcl>
 
index 466d3211e937f61e2690ccc8a68770e0a55eb68f..eef36e763fcfa270653fda6bcf473a7648d409de 100644 (file)
@@ -532,7 +532,7 @@ errout:
        if (errcode < 0 || errcode > 128)
            errcode = KRB_ERR_GENERIC;
            
-       errcode = prepare_error_as(request, errcode, 0, response);
+       errcode = prepare_error_as(request, errcode, &e_data, response);
     }
     if (cname)
            free(cname);
index f9ce46597c0384e87ec1350fbd6603fe6e8e6929..dab3d79133796d24cb6f4691307002f7d6572671 100644 (file)
@@ -123,7 +123,7 @@ void get_preauth_hint_list(client, server, e_data)
        *pa = malloc(sizeof(krb5_pa_data));
        if (*pa == 0)
            goto errout;
-       memset(pa, 0, sizeof(krb5_pa_data));
+       memset(*pa, 0, sizeof(krb5_pa_data));
        (*pa)->magic = KV5M_PA_DATA;
        (*pa)->pa_type = ap->type;
        if (ap->get_edata)
index 4291bb7446e943aac0ff7a16d22f0dec2cc9f0ed..32f3983546d2d24509314d75693e251697b3407a 100644 (file)
@@ -810,17 +810,6 @@ const char **status;
        return(KDC_ERR_S_PRINCIPAL_UNKNOWN);
     }
 
-    /* Check to see if preauthentication is required */
-    if (isflagset(client.attributes, KRB5_KDB_REQUIRES_PRE_AUTH) &&
-        !request->padata) {
-       *status = "MISSING PRE_AUTH";
-#ifdef KRBCONF_VAGUE_ERRORS
-       return KRB_ERR_GENERIC;
-#else
-       return KDC_ERR_PREAUTH_REQUIRED;
-#endif
-    }
-
     /*
      * Check against local policy
      */