summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-04-02 11:23:36 -0700
committerJeremy Allison <jra@samba.org>2008-04-02 11:23:36 -0700
commit3ebb6be00d88aeb27cfe7d2cc931b14d4993a94b (patch)
tree3efff556c3cd91af9b90d161e790007a067a7c1e
parent832adaa5ab46a3fdceb2c26942615ac7a4ddf522 (diff)
downloadsamba-3ebb6be00d88aeb27cfe7d2cc931b14d4993a94b.tar.gz
samba-3ebb6be00d88aeb27cfe7d2cc931b14d4993a94b.tar.bz2
samba-3ebb6be00d88aeb27cfe7d2cc931b14d4993a94b.zip
Fix MSDFS bug noticed by Ofir Azoulay <Ofir.Azoulay@expand.com>.
There is no reason to ensure the target host is ourselves, and this breaks MS clients in some cases. Jeremy. (This used to be commit c19fdf43d16ce9fba3e8e12e6192bac31837715e)
-rw-r--r--source3/smbd/msdfs.c30
1 files changed, 0 insertions, 30 deletions
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 8ffa0f7751..fb757a5f74 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -127,28 +127,6 @@ static NTSTATUS parse_dfs_path(const char *pathname,
DEBUG(10,("parse_dfs_path: hostname: %s\n",pdp->hostname));
- /* If we got a hostname, is it ours (or an IP address) ? */
- if (!is_myname_or_ipaddr(pdp->hostname)) {
- /* Repair path. */
- *p = sepchar;
- DEBUG(10,("parse_dfs_path: hostname %s isn't ours. "
- "Try local path from path %s\n",
- pdp->hostname, temp));
- /*
- * Possibly client sent a local path by mistake.
- * Try and convert to a local path.
- */
-
- pdp->hostname = eos_ptr; /* "" */
- pdp->servicename = eos_ptr; /* "" */
-
- p = temp;
- DEBUG(10,("parse_dfs_path: trying to convert %s "
- "to a local path\n",
- temp));
- goto local_path;
- }
-
/* Parse out servicename. */
temp = p+1;
p = strchr_m(temp,sepchar);
@@ -751,14 +729,6 @@ NTSTATUS get_referred_path(TALLOC_CTX *ctx,
return status;
}
- /* Verify hostname in path */
- if (!is_myname_or_ipaddr(pdp->hostname)) {
- DEBUG(3, ("get_referred_path: Invalid hostname %s in path %s\n",
- pdp->hostname, dfs_path));
- TALLOC_FREE(pdp);
- return NT_STATUS_NOT_FOUND;
- }
-
jucn->service_name = talloc_strdup(ctx, pdp->servicename);
jucn->volume_name = talloc_strdup(ctx, pdp->reqpath);
if (!jucn->service_name || !jucn->volume_name) {