From cfe4252744803d6fc2f7dcea7d168d2b9cceac14 Mon Sep 17 00:00:00 2001
From: Steve Holme <steve_holme@hotmail.com>
Date: Thu, 6 Nov 2014 15:25:45 +0000
Subject: [PATCH] http_digest: Fixed auth retry loop when SSPI based
 authentication fails

---
 lib/curl_sasl_sspi.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/curl_sasl_sspi.c b/lib/curl_sasl_sspi.c
index 45aca8ac49..527aa66ef0 100644
--- a/lib/curl_sasl_sspi.c
+++ b/lib/curl_sasl_sspi.c
@@ -291,8 +291,10 @@ CURLcode Curl_sasl_decode_digest_http_message(const char *chlg,
 {
   size_t chlglen = strlen(chlg);
 
-  /* Clean up any former leftovers and initialise to defaults */
-  Curl_sasl_digest_cleanup(digest);
+  /* We had an input token before and we got another one now. This means we
+  provided bad credentials in the previous request. */
+  if(digest->input_token)
+    return CURLE_BAD_CONTENT_ENCODING;
 
   /* Simply store the challenge for use later */
   digest->input_token = (BYTE *) Curl_memdup(chlg, chlglen);
-- 
GitLab