diff options
author | Ezra Peisach <epeisach@mit.edu> | 2010-01-03 15:14:51 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2010-01-03 15:14:51 +0000 |
commit | 36bdbec726c7fd6799e08dce44fc010c5bd6ed70 (patch) | |
tree | 5eee96c00471f1fd7cef07b84ce3c03f998f93ab /src | |
parent | d4e7d83322f1320741ded44a060e0484cf8173d3 (diff) | |
download | krb5-36bdbec726c7fd6799e08dce44fc010c5bd6ed70.tar.gz krb5-36bdbec726c7fd6799e08dce44fc010c5bd6ed70.tar.xz krb5-36bdbec726c7fd6799e08dce44fc010c5bd6ed70.zip |
krb5_gss_acquire_cred will deref garbage pointer if actual_mechs is NULL
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23572 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/gssapi/krb5/acquire_cred.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/gssapi/krb5/acquire_cred.c b/src/lib/gssapi/krb5/acquire_cred.c index 64efa1bfd0..2ccf7dbf37 100644 --- a/src/lib/gssapi/krb5/acquire_cred.c +++ b/src/lib/gssapi/krb5/acquire_cred.c @@ -465,7 +465,7 @@ krb5_gss_acquire_cred(minor_status, desired_name, time_req, krb5_context context; size_t i; krb5_gss_cred_id_t cred; - gss_OID_set ret_mechs; + gss_OID_set ret_mechs = NULL; int req_old, req_new; OM_uint32 ret; krb5_error_code code; @@ -693,8 +693,10 @@ krb5_gss_acquire_cred(minor_status, desired_name, time_req, /* intern the credential handle */ if (! kg_save_cred_id((gss_cred_id_t) cred)) { - free(ret_mechs->elements); - free(ret_mechs); + if (ret_mechs) { + free(ret_mechs->elements); + free(ret_mechs); + } if (cred->ccache) (void)krb5_cc_close(context, cred->ccache); #ifndef LEAN_CLIENT |