From 2f8f12e82eb69922f1144f047f77083677f9f767 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 14 Aug 2007 10:28:21 +0000 Subject: [PATCH] Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't unicode encode the strings it packs into the NTLM authenticate packet. --- CHANGES | 5 +++++ RELEASE-NOTES | 6 ++++-- lib/http_ntlm.c | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index dd1220aef..98c3648d9 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,11 @@ Changelog +Daniel S (14 August 2007) +- Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag + NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't + UNICODE encode the strings it packs into the NTLM authenticate packet. + Daniel S (11 August 2007) - Allen Pulsifer provided a patch that makes libcurl set the expected download size earlier when doing HTTP downloads, so that applications and the diff --git a/RELEASE-NOTES b/RELEASE-NOTES index a50a7315d..e444a40f7 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -36,8 +36,10 @@ This release includes the following bugfixes: o AIX 4 and 5 get to use non-blocking sockets o small POST with NTLM o resumed file:// transfers - o CURLOPT_DNS_CACHE_TIMEOUT and CURLOPT_DNS_USE_GLOBAL_CACHE are 64 bit "clean" + o CURLOPT_DNS_CACHE_TIMEOUT and CURLOPT_DNS_USE_GLOBAL_CACHE are 64 bit + "clean" o memory leak when handling compressed data streams from broken servers + o no NTLM unicode response This release includes the following known bugs: @@ -61,6 +63,6 @@ advice from friends like these: Daniel Cater, Colin Hogben, Jofell Gallardo, Daniel Johnson, Ralf S. Engelschall, James Housley, Chris Flerackers, Patrick Monnerat, Jayesh A Shah, Greg Zavertnik, Peter O'Gorman, Greg Morse, Dmitriy Sergeyev, - Scott Cantor, Allen Pulsifer + Scott Cantor, Allen Pulsifer, Andrew Wansink Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/http_ntlm.c b/lib/http_ntlm.c index 863ddf521..e50ace100 100644 --- a/lib/http_ntlm.c +++ b/lib/http_ntlm.c @@ -917,6 +917,13 @@ CURLcode Curl_output_ntlm(struct connectdata *conn, useroff = domoff + domlen; hostoff = useroff + userlen; + /* + * In the case the server sets the flag NTLMFLAG_NEGOTIATE_UNICODE, we + * need to filter it off because libcurl doesn't UNICODE encode the + * strings it packs into the NTLM authenticate packet. + */ + ntlm->flags &= ~NTLMFLAG_NEGOTIATE_UNICODE; + /* Create the big type-3 message binary blob */ size = snprintf((char *)ntlmbuf, sizeof(ntlmbuf), NTLMSSP_SIGNATURE "%c"