diff options
| author | Greg Hudson <ghudson@mit.edu> | 2012-07-05 05:02:38 -0400 |
|---|---|---|
| committer | Greg Hudson <ghudson@mit.edu> | 2012-07-05 05:02:38 -0400 |
| commit | 174a452878ef5356f5baa3865a2e219a0dad01a0 (patch) | |
| tree | 8415319d6e5a60149066c05835ed6bc1086c9e07 /src/plugins/preauth/pkinit | |
| parent | 7f7fa930f7ca9c06b1afaaa453394755dbddb352 (diff) | |
| download | krb5-174a452878ef5356f5baa3865a2e219a0dad01a0.tar.gz krb5-174a452878ef5356f5baa3865a2e219a0dad01a0.tar.xz krb5-174a452878ef5356f5baa3865a2e219a0dad01a0.zip | |
Simplify and fix pkinit_as_req_create cleanup
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.
Diffstat (limited to 'src/plugins/preauth/pkinit')
| -rw-r--r-- | src/plugins/preauth/pkinit/pkinit_clnt.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/plugins/preauth/pkinit/pkinit_clnt.c b/src/plugins/preauth/pkinit/pkinit_clnt.c index 4b61ab7ff..d70da49b1 100644 --- a/src/plugins/preauth/pkinit/pkinit_clnt.c +++ b/src/plugins/preauth/pkinit/pkinit_clnt.c @@ -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); |
