From aeb4ba18012d71de350e99d9636a305f4817689c Mon Sep 17 00:00:00 2001 From: Robin McCorkell Date: Thu, 9 Jul 2015 21:20:12 +0100 Subject: Fix MSDFS with POSIX paths in vfs_dfs_samba4 Allow for POSIX path separators when parsing a DFS query string Signed-off-by: Robin McCorkell Reviewed-by: Jeremy Allison Reviewed-by: Volker Lendecke --- dfs_server/dfs_server_ad.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'dfs_server') diff --git a/dfs_server/dfs_server_ad.c b/dfs_server/dfs_server_ad.c index 2a1d9ec02e1..cacad0bff17 100644 --- a/dfs_server/dfs_server_ad.c +++ b/dfs_server/dfs_server_ad.c @@ -799,6 +799,7 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx, const char *netbios_name; const char *dns_name; const char **netbios_aliases; + char path_separator; if (!lpcfg_host_msdfs(lp_ctx)) { return NT_STATUS_FS_DRIVER_REQUIRED; @@ -826,16 +827,18 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx, return NT_STATUS_NO_MEMORY; } - while(*server_name && *server_name == '\\') { + path_separator = (*server_name == '/') ? '/' : '\\'; + + while(*server_name && *server_name == path_separator) { server_name++; } - dfs_name = strchr(server_name, '\\'); + dfs_name = strchr(server_name, path_separator); if (dfs_name != NULL) { dfs_name[0] = '\0'; dfs_name++; - link_path = strchr(dfs_name, '\\'); + link_path = strchr(dfs_name, path_separator); if (link_path != NULL) { link_path[0] = '\0'; link_path++; -- cgit v1.2.1