r201: Fix bugs in the --helper-protocol=ntlm-server-1 implementation.
authorAndrew Bartlett <abartlet@samba.org>
Tue, 13 Apr 2004 20:57:26 +0000 (20:57 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 13 Apr 2004 20:57:26 +0000 (20:57 +0000)
(allow the use of base64 encoded strings, LM or NT passwords)

Andrew Bartlett

source/utils/ntlm_auth.c

index 0e763968abf30cd5800b0ddb1d9ea2db65e6644e..70383b31dc9d4a5757ce7f735579ec76bac8eb66 100644 (file)
@@ -1418,7 +1418,7 @@ static void manage_ntlm_server_1_request(enum stdio_helper_mode stdio_helper_mod
                        } else {
                                x_fprintf(x_stdout, "Authenticated: No\n");
                        }
-               } else if (!lm_response.data || !nt_response.data) {
+               } else if (!lm_response.data && !nt_response.data) {
                        x_fprintf(x_stdout, "Error: No password supplied!\n");
                } else if (!challenge.data) {   
                        x_fprintf(x_stdout, "Error: No lanman-challenge supplied!\n");
@@ -1513,30 +1513,31 @@ static void manage_ntlm_server_1_request(enum stdio_helper_mode stdio_helper_mod
 
        request = buf;
 
-       parameter = strstr_m(request, ": ");
+       /* Indicates a base64 encoded structure */
+       parameter = strstr_m(request, ":: ");
        if (!parameter) {
-               /* Indicates a base64 encoded structure */
-               parameter = strstr_m(request, ":: ");
+               parameter = strstr_m(request, ": ");
                
                if (!parameter) {
                        DEBUG(0, ("Parameter not found!\n"));
                        x_fprintf(x_stdout, "Error: Parameter not found!\n.\n");
                        return;
                }
-               parameter[0] ='\0';
-               parameter++;
+               
                parameter[0] ='\0';
                parameter++;
                parameter[0] ='\0';
                parameter++;
 
-               base64_decode_inplace(parameter);
        } else {
-               
                parameter[0] ='\0';
                parameter++;
                parameter[0] ='\0';
                parameter++;
+               parameter[0] ='\0';
+               parameter++;
+
+               base64_decode_inplace(parameter);
        }
 
        if (strequal(request, "LANMAN-Challenge")) {