HACK: computer_name must match NTLMv2 name... invalidAuthenticate2
authorStefan Metzmacher <metze@samba.org>
Fri, 10 Jan 2014 11:19:08 +0000 (12:19 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 10 Feb 2014 08:05:13 +0000 (09:05 +0100)
This add 'rpc.netlogon.netlogon.invalidAuthenticate2' as new test
it demonstrates the STATUS_BUFFER_OVERFLOW on computer names
larger than 15 characters.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
source4/torture/rpc/netlogon.c

index 90bfe7e1eb23bf44f9a58227b9e2694a05bf52ac..6f187fa6daf126a83ebfd023560609795e80b72f 100644 (file)
@@ -832,7 +832,7 @@ static bool test_netlogon_ops_args(struct dcerpc_pipe *p, struct torture_context
        chal = data_blob_const(ninfo.challenge,
                               sizeof(ninfo.challenge));
 
-       names_blob = NTLMv2_generate_names_blob(tctx, cli_credentials_get_workstation(credentials),
+       names_blob = NTLMv2_generate_names_blob(tctx, creds->computer_name,// cli_credentials_get_workstation(credentials),
                                                cli_credentials_get_domain(credentials));
 
        status = cli_credentials_get_ntlm_response(cmdline_credentials, tctx,
@@ -857,7 +857,7 @@ static bool test_netlogon_ops_args(struct dcerpc_pipe *p, struct torture_context
        logon.network = &ninfo;
 
        r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
-       r.in.computer_name = cli_credentials_get_workstation(credentials);
+       r.in.computer_name = creds->computer_name;//cli_credentials_get_workstation(credentials);
        r.in.credential = &auth;
        r.in.return_authenticator = &auth2;
        r.in.logon_level = NetlogonNetworkInformation;
@@ -1100,6 +1100,7 @@ static bool test_invalidAuthenticate2(struct torture_context *tctx,
                return false;
        }
 
+       return test_netlogon_ops(p, tctx, credentials, creds);
        return true;
 }
 
@@ -3973,6 +3974,14 @@ struct torture_suite *torture_rpc_netlogon(TALLOC_CTX *mem_ctx)
        torture_rpc_tcase_add_test_creds(tcase, "ServerGetTrustInfo_AES", test_netr_ServerGetTrustInfo_AES);
        torture_rpc_tcase_add_test_creds(tcase, "GetForestTrustInformation", test_netr_GetForestTrustInformation);
 
+       tcase = torture_suite_add_machine_workstation_rpc_iface_tcase(suite, "netlogon.wks",
+                                                 &ndr_table_netlogon, TEST_MACHINE_NAME);
+
+       torture_rpc_tcase_add_test(tcase, "Broken RPC binding handle",
+                                  test_netr_broken_binding_handle);
+       torture_rpc_tcase_add_test_creds(tcase, "SamLogon", test_SamLogon);
+       torture_rpc_tcase_add_test_creds(tcase, "invalidAuthenticate2", test_invalidAuthenticate2);
+
        return suite;
 }