aboutsummaryrefslogtreecommitdiff
path: root/src/lib/gssapi/krb5/gssapi_krb5.c
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2003-07-17 20:50:36 +0000
committerTom Yu <tlyu@mit.edu>2003-07-17 20:50:36 +0000
commit24232fb5e0497300f36d85285d9b156bc936eb2d (patch)
treeabd9059fe1daf3707e4ade8a075c6d7464968bc3 /src/lib/gssapi/krb5/gssapi_krb5.c
parent3a507eb5f473854153d48197b3cd6c3d81534d48 (diff)
downloadkrb5-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.c36
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;