]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Free the request in process_as_req for parallelism with TGS case. This permits the...
authorSam Hartman <hartmans@mit.edu>
Thu, 26 Mar 2009 05:36:50 +0000 (05:36 +0000)
committerSam Hartman <hartmans@mit.edu>
Thu, 26 Mar 2009 05:36:50 +0000 (05:36 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/fast@22128 dc483132-0cff-0310-8789-dd5450dbe970

src/kdc/dispatch.c
src/kdc/do_as_req.c

index 77415af82d5915091804c51e2633f86025c2179a..36786457f93375acc075d795580207dfd11122ed 100644 (file)
@@ -92,11 +92,12 @@ dispatch(krb5_data *pkt, const krb5_fulladdr *from, krb5_data **response)
            /*
             * setup_server_realm() sets up the global realm-specific data
             * pointer.
+            * process_as_req frees the request if it is called
             */
            if (!(retval = setup_server_realm(as_req->server))) {
                retval = process_as_req(as_req, pkt, from, response);
            }
-           krb5_free_kdc_req(kdc_context, as_req);
+           else            krb5_free_kdc_req(kdc_context, as_req);
        }
     }
     else
index ded72e4a8088a72f62c68909ed12728c33e3f41f..d99b5b688440df55367f05791e76bee4c899111c 100644 (file)
@@ -691,6 +691,7 @@ egress:
 
     krb5_free_data_contents(kdc_context, &e_data);
     kdc_free_rstate(state);
+    krb5_free_kdc_req(kdc_context, request);
     assert(did_log != 0);
     return errcode;
 }