]> granicus.if.org Git - curl/commitdiff
sasl_sspi: fixed unicode build for digest authentication
authorStefan Bühler <buehler@teamviewer.com>
Thu, 12 Nov 2015 10:09:21 +0000 (11:09 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Thu, 12 Nov 2015 19:11:40 +0000 (19:11 +0000)
Closes #525

lib/curl_sasl_sspi.c

index 3e2e49571f650f8adf1b0e30c6ca4af8b10833f6..84fce9f24a18378a950decd698d054f6cc2f4388 100644 (file)
@@ -418,6 +418,7 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data,
   SECURITY_STATUS status;
   unsigned long attrs;
   TimeStamp expiry; /* For Windows 9x compatibility of SSPI calls */
+  TCHAR *spn;
 
   (void) data;
 
@@ -489,12 +490,20 @@ CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data,
   resp_buf.pvBuffer   = output_token;
   resp_buf.cbBuffer   = curlx_uztoul(token_max);
 
+  spn = Curl_convert_UTF8_to_tchar((char *) uripath);
+  if(!spn) {
+    free(output_token);
+
+    return CURLE_OUT_OF_MEMORY;
+  }
+
   /* Generate our reponse message */
   status = s_pSecFn->InitializeSecurityContext(&credentials, NULL,
-                                               (TCHAR *) uripath,
+                                               spn,
                                                ISC_REQ_USE_HTTP_STYLE, 0, 0,
                                                &chlg_desc, 0, &context,
                                                &resp_desc, &attrs, &expiry);
+  Curl_unicodefree(spn);
 
   if(status == SEC_I_COMPLETE_NEEDED ||
      status == SEC_I_COMPLETE_AND_CONTINUE)