diff options
author | Jeffrey Altman <jaltman@secure-endpoints.com> | 2007-09-24 12:30:03 +0000 |
---|---|---|
committer | Jeffrey Altman <jaltman@secure-endpoints.com> | 2007-09-24 12:30:03 +0000 |
commit | c2df7dfe8375f0696b9418a50f613b34bb86e757 (patch) | |
tree | 5f7ff385e1d256165e251b83297cffd545692927 /src/windows | |
parent | c30fdcd7fddcf0ca8c368959c2ab7c6f7361bb13 (diff) | |
download | krb5-c2df7dfe8375f0696b9418a50f613b34bb86e757.tar.gz krb5-c2df7dfe8375f0696b9418a50f613b34bb86e757.tar.xz krb5-c2df7dfe8375f0696b9418a50f613b34bb86e757.zip |
NIM: BUG: khm_krb5_initialize() failed to return error code
khm_krb5_initialize() is called in the krb5cred.dll and krb4cred.dll
credential providers in order to ensure that the caller has references
to a valid krb5_context and a valid krb5_ccache. If the krb5_cc_resolve()
call failed, the error code was not being returned to the caller.
Instead, success was returned which in turn would result in the caller
believing the NULL krb5_ccache pointer was in fact valid.
This fix resolves Microsoft's WER Event ID 432405961.
ticket: new
component: windows
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19967 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/windows')
-rw-r--r-- | src/windows/identity/plugins/common/krb5common.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/windows/identity/plugins/common/krb5common.c b/src/windows/identity/plugins/common/krb5common.c index 1278fbcfa7..36d647cc77 100644 --- a/src/windows/identity/plugins/common/krb5common.c +++ b/src/windows/identity/plugins/common/krb5common.c @@ -42,7 +42,7 @@ khm_krb5_error(krb5_error_code rc, LPCSTR FailedFunctionName, krb5_ccache * cache) { #ifdef NO_KRB5 - return 0; + return -1; #else #ifdef SHOW_MESSAGE_IN_AN_ANNOYING_WAY @@ -87,12 +87,12 @@ khm_krb5_initialize(khm_handle ident, krb5_ccache *cache) { #ifdef NO_KRB5 - return(0); + return(-1); #else LPCSTR functionName = NULL; int freeContextFlag = 0; - krb5_error_code rc = 0; + krb5_error_code rc = -1; krb5_flags flags = 0; if (pkrb5_init_context == NULL) @@ -132,7 +132,7 @@ khm_krb5_initialize(khm_handle ident, if(UnicodeStrToAnsi(ccname, sizeof(ccname), wccname) == 0) break; - if((*pkrb5_cc_resolve)(*ctx, ccname, cache)) { + if(rc = (*pkrb5_cc_resolve)(*ctx, ccname, cache)) { functionName = "krb5_cc_resolve()"; freeContextFlag = 1; goto on_error; |