diff options
author | Tom Yu <tlyu@mit.edu> | 2003-07-17 20:50:36 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2003-07-17 20:50:36 +0000 |
commit | 24232fb5e0497300f36d85285d9b156bc936eb2d (patch) | |
tree | abd9059fe1daf3707e4ade8a075c6d7464968bc3 /src/lib/gssapi/krb5/gssapi_krb5.c | |
parent | 3a507eb5f473854153d48197b3cd6c3d81534d48 (diff) | |
download | krb5-24232fb5e0497300f36d85285d9b156bc936eb2d.zip krb5-24232fb5e0497300f36d85285d9b156bc936eb2d.tar.gz krb5-24232fb5e0497300f36d85285d9b156bc936eb2d.tar.bz2 |
Remove kg_release_defcred and caching of default credential. Rewrite
krb5_gss_init_sec_context() while we're at it to make defcred-related
changes easier, and as a side effect, fix some error condition memory
leaks.
ticket: 1365
target_version: 1.3.1
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15694 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi/krb5/gssapi_krb5.c')
-rw-r--r-- | src/lib/gssapi/krb5/gssapi_krb5.c | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c index db6eabd..2c7803b 100644 --- a/src/lib/gssapi/krb5/gssapi_krb5.c +++ b/src/lib/gssapi/krb5/gssapi_krb5.c @@ -128,10 +128,6 @@ void *kg_vdb = NULL; /** default credential support */ -/* default credentials */ - -static gss_cred_id_t defcred = GSS_C_NO_CREDENTIAL; - /* * init_sec_context() will explicitly re-acquire default credentials, * so handling the expiration/invalidation condition here isn't needed. @@ -141,37 +137,19 @@ kg_get_defcred(minor_status, cred) OM_uint32 *minor_status; gss_cred_id_t *cred; { - if (defcred == GSS_C_NO_CREDENTIAL) { - OM_uint32 major; - - if ((major = krb5_gss_acquire_cred(minor_status, - (gss_name_t) NULL, GSS_C_INDEFINITE, - GSS_C_NULL_OID_SET, GSS_C_INITIATE, - &defcred, NULL, NULL)) && - GSS_ERROR(major)) { - defcred = GSS_C_NO_CREDENTIAL; - return(major); - } - } + OM_uint32 major; - *cred = defcred; + if ((major = krb5_gss_acquire_cred(minor_status, + (gss_name_t) NULL, GSS_C_INDEFINITE, + GSS_C_NULL_OID_SET, GSS_C_INITIATE, + cred, NULL, NULL)) && GSS_ERROR(major)) { + return(major); + } *minor_status = 0; return(GSS_S_COMPLETE); } OM_uint32 -kg_release_defcred(minor_status) - OM_uint32 *minor_status; -{ - if (defcred == GSS_C_NO_CREDENTIAL) { - *minor_status = 0; - return(GSS_S_COMPLETE); - } - - return(krb5_gss_release_cred(minor_status, &defcred)); -} - -OM_uint32 kg_get_context(minor_status, context) OM_uint32 *minor_status; krb5_context *context; |