summaryrefslogtreecommitdiff
path: root/usr/src/lib/smbsrv/libmlsvc/common/samr_open.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/smbsrv/libmlsvc/common/samr_open.c')
-rw-r--r--usr/src/lib/smbsrv/libmlsvc/common/samr_open.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr/src/lib/smbsrv/libmlsvc/common/samr_open.c b/usr/src/lib/smbsrv/libmlsvc/common/samr_open.c
index 233acdf84d..015165798f 100644
--- a/usr/src/lib/smbsrv/libmlsvc/common/samr_open.c
+++ b/usr/src/lib/smbsrv/libmlsvc/common/samr_open.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -318,7 +318,7 @@ samr_connect4(char *server, char *domain, char *username, DWORD access_mask,
{
struct samr_Connect4 arg;
mlrpc_heapref_t heapref;
- char *dns_name;
+ char dns_name[MAXHOSTNAMELEN];
int len;
int opnum;
DWORD status;
@@ -327,9 +327,10 @@ samr_connect4(char *server, char *domain, char *username, DWORD access_mask,
opnum = SAMR_OPNUM_Connect;
status = NT_STATUS_SUCCESS;
+ if (smb_resolve_fqdn(domain, dns_name, MAXHOSTNAMELEN) != 1)
+ return (NT_STATUS_UNSUCCESSFUL);
+
(void) mlsvc_rpc_init(&heapref);
- dns_name = mlrpc_heap_malloc(heapref.heap, MAXHOSTNAMELEN);
- (void) smb_getdomainname(dns_name, MAXHOSTNAMELEN);
if (strlen(dns_name) > 0) {
len = strlen(server) + strlen(dns_name) + 4;