diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2019-05-11 02:23:09 -0400 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2019-08-14 03:14:01 -0400 |
commit | dca6f73613d8b578687bd4aeeedd198f9644bb53 (patch) | |
tree | be2274068f71d0fae6b7211181f0f10d5dfe936a /lib/vauth/spnego_sspi.c | |
parent | aae490229b733a41223d8b806103cedf6bd757a0 (diff) | |
download | curl-dca6f73613d8b578687bd4aeeedd198f9644bb53.tar.gz |
vauth: Use CURLE_AUTH_ERROR for auth function errors
- Add new error code CURLE_AUTH_ERROR.
Prior to this change auth function errors were signaled by
CURLE_OUT_OF_MEMORY and CURLE_RECV_ERROR, and neither one was
technically correct.
Ref: https://github.com/curl/curl/pull/3848
Co-authored-by: Dominik Hölzl
Closes https://github.com/curl/curl/pull/3864
Diffstat (limited to 'lib/vauth/spnego_sspi.c')
-rw-r--r-- | lib/vauth/spnego_sspi.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/vauth/spnego_sspi.c b/lib/vauth/spnego_sspi.c index 4b21cc769..a4935276b 100644 --- a/lib/vauth/spnego_sspi.c +++ b/lib/vauth/spnego_sspi.c @@ -251,14 +251,25 @@ CURLcode Curl_auth_decode_spnego_message(struct Curl_easy *data, char buffer[STRERROR_LEN]; failf(data, "InitializeSecurityContext failed: %s", Curl_sspi_strerror(nego->status, buffer, sizeof(buffer))); - return CURLE_OUT_OF_MEMORY; + + if(nego->status == SEC_E_INSUFFICIENT_MEMORY) + return CURLE_OUT_OF_MEMORY; + + return CURLE_AUTH_ERROR; } if(nego->status == SEC_I_COMPLETE_NEEDED || nego->status == SEC_I_COMPLETE_AND_CONTINUE) { nego->status = s_pSecFn->CompleteAuthToken(nego->context, &resp_desc); if(GSS_ERROR(nego->status)) { - return CURLE_RECV_ERROR; + char buffer[STRERROR_LEN]; + failf(data, "CompleteAuthToken failed: %s", + Curl_sspi_strerror(nego->status, buffer, sizeof(buffer))); + + if(nego->status == SEC_E_INSUFFICIENT_MEMORY) + return CURLE_OUT_OF_MEMORY; + + return CURLE_AUTH_ERROR; } } |