^samba3.smbtorture_s3.smb2.SMB2-DFS-PATHS.smbtorture\(fileserver\)
^samba3.smbtorture_s3.smb2.SMB2-NON-DFS-SHARE.smbtorture\(fileserver\)
^samba3.smbtorture_s3.smb2.SMB2-DFS-SHARE-NON-DFS-PATH.smbtorture\(fileserver\)
-^samba3.smbtorture_s3.smb2.SMB2-DFS-FILENAME-LEADING-BACKSLASH.smbtorture\(fileserver\)
^samba3.smbtorture_s3.smb1.SMB1-DFS-PATHS.smbtorture\(fileserver\)
^samba3.smbtorture_s3.smb1.SMB1-DFS-SEARCH-PATHS.smbtorture\(fileserver\)
^samba3.smbtorture_s3.smb1.SMB1-DFS-OPERATIONS.smbtorture\(fileserver\)
in_file_attributes &= ~FILE_FLAG_POSIX_SEMANTICS;
+ is_dfs = (smb1req->flags2 & FLAGS2_DFS_PATHNAMES);
+ if (is_dfs) {
+ /*
+ * With a DFS flag set, remove any leading '\\'
+ * characters from in_name before further processing.
+ */
+ while (in_name[0] == '\\') {
+ in_name++;
+ }
+ }
+
state->fname = talloc_strdup(state, in_name);
if (tevent_req_nomem(state->fname, req)) {
return tevent_req_post(req, state->ev);
state->lease_ptr = NULL;
}
- is_dfs = (smb1req->flags2 & FLAGS2_DFS_PATHNAMES);
-
/* convert '\\' into '/' */
status = check_path_syntax_smb2(state->fname, is_dfs);
if (tevent_req_nterror(req, status)) {