]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Simplify and fix pkinit_as_req_create cleanup
authorGreg Hudson <ghudson@mit.edu>
Thu, 5 Jul 2012 09:02:38 +0000 (05:02 -0400)
committerGreg Hudson <ghudson@mit.edu>
Thu, 5 Jul 2012 09:02:38 +0000 (05:02 -0400)
Avoid dereferencing a null auth_pack pointer if we run out of memory
initializing info or auth_pack.  Eliminate an unnecessary switch by
just cleaning up all of the potentially allocated variables.

src/plugins/preauth/pkinit/pkinit_clnt.c

index 4b61ab7ff764248bae8321ef31b0927d44e2f94c..d70da49b1cd25426ecca27a4c1a5777e4e614eed 100644 (file)
@@ -451,18 +451,12 @@ pkinit_as_req_create(krb5_context context,
 #endif
 
 cleanup:
-    switch((int)reqctx->pa_type) {
-    case KRB5_PADATA_PK_AS_REQ:
+    if (auth_pack != NULL)
         auth_pack->supportedKDFs = NULL; /*alias to global constant*/
-        free_krb5_auth_pack(&auth_pack);
-        free_krb5_pa_pk_as_req(&req);
-        break;
-    case KRB5_PADATA_PK_AS_REQ_OLD:
-        free_krb5_pa_pk_as_req_draft9(&req9);
-        free(auth_pack9);
-        break;
-    }
-
+    free_krb5_auth_pack(&auth_pack);
+    free_krb5_pa_pk_as_req(&req);
+    free_krb5_pa_pk_as_req_draft9(&req9);
+    free(auth_pack9);
 
     pkiDebug("pkinit_as_req_create retval=%d\n", (int) retval);