s4:cldap_server/netlogon.c: it is wrong to specify "\\" in front of the hostname
authorStefan Metzmacher <metze@samba.org>
Wed, 23 Nov 2011 09:09:51 +0000 (10:09 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 4 Jan 2012 17:33:06 +0000 (18:33 +0100)
For LOGON_SAM_LOGON_RESPONSE_EX and LOGON_SAM_LOGON_USER_UNKNOWN_EX,
pdc name is not in unc path form.

[MS-ADTS] 7.3.1.* uses UnicodeLogonServer, which seems to be in unc form,
while NetbiosComputerName is not in unc form.

Bases on a patch from Matthias Dieter Wallnöfer <mdw@samba.org>.

metze

source4/cldap_server/netlogon.c

index 9d9f45e8bb0279d200884019c0a4a2ade893082f..4777fcca9cf6857e9ea3a064c6ca3e4efa2cc654 100644 (file)
@@ -250,9 +250,13 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
                server_type |= DS_SERVER_WRITABLE;
        }
 
-       pdc_name         = talloc_asprintf(mem_ctx, "\\\\%s",
+       if (version & (NETLOGON_NT_VERSION_5EX|NETLOGON_NT_VERSION_5EX_WITH_IP)) {
+               pdc_name = lpcfg_netbios_name(lp_ctx);
+       } else {
+               pdc_name = talloc_asprintf(mem_ctx, "\\\\%s",
                                           lpcfg_netbios_name(lp_ctx));
-       NT_STATUS_HAVE_NO_MEMORY(pdc_name);
+               NT_STATUS_HAVE_NO_MEMORY(pdc_name);
+       }
        domain_uuid      = samdb_result_guid(dom_res->msgs[0], "objectGUID");
        dns_domain       = lpcfg_dnsdomain(lp_ctx);
        forest_domain    = samdb_forest_name(sam_ctx, mem_ctx);