From dbcca6b3f0281dfaa9978e7a65e9a9c1e0c9f601 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 1 Dec 2008 13:27:30 -0800 Subject: [PATCH] s3:smbd: wildcard characters are allowed in stream names We only check the filename of the basefile now. metze (cherry picked from commit 1ad249d10bc4a9ed61c1f712e6ccc35e6ec7ba06) --- source/smbd/open.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/smbd/open.c b/source/smbd/open.c index 5c9fcf8864f..b20927cd821 100644 --- a/source/smbd/open.c +++ b/source/smbd/open.c @@ -284,6 +284,7 @@ static NTSTATUS open_file(files_struct *fsp, if ((open_access_mask & (FILE_READ_DATA|FILE_WRITE_DATA|FILE_APPEND_DATA|FILE_EXECUTE)) || (!file_existed && (local_flags & O_CREAT)) || ((local_flags & O_TRUNC) == O_TRUNC) ) { + const char *wild; /* * We can't actually truncate here as the file may be locked. @@ -305,8 +306,17 @@ static NTSTATUS open_file(files_struct *fsp, #endif /* Don't create files with Microsoft wildcard characters. */ + if (fsp->base_fsp) { + /* + * wildcard characters are allowed in stream names + * only test the basefilename + */ + wild = fsp->base_fsp->fsp_name; + } else { + wild = path; + } if ((local_flags & O_CREAT) && !file_existed && - ms_has_wild(path)) { + ms_has_wild(wild)) { return NT_STATUS_OBJECT_NAME_INVALID; } -- 2.11.4.GIT