mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
Couple of minor fixes for POSIX pathname processing in the
new stream code. (1) In smbd/filename, don't split the name at ':' if we know it's a posix path (this should be parameterized....). (2). When calling posix_mkdir, we get the flag FILE_FLAG_POSIX_SEMANTICS passed to open_directory(). I know for a posix client lp_posix_pathnames should be true (which is checked for in is_ntfs_stream_name() but we have an explicit flag here, so let's use it. Jeremy. (This used to be commit 7bb7a0def6518784befa75e5303289d2b4d36dd4)
This commit is contained in:
parent
536bff4229
commit
0bb6fb7b6f
@ -214,16 +214,18 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
stream = strchr_m(name, ':');
|
||||
if (!lp_posix_pathnames()) {
|
||||
stream = strchr_m(name, ':');
|
||||
|
||||
if (stream != NULL) {
|
||||
char *tmp = talloc_strdup(ctx, stream);
|
||||
if (tmp == NULL) {
|
||||
TALLOC_FREE(name);
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
if (stream != NULL) {
|
||||
char *tmp = talloc_strdup(ctx, stream);
|
||||
if (tmp == NULL) {
|
||||
TALLOC_FREE(name);
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
*stream = '\0';
|
||||
stream = tmp;
|
||||
}
|
||||
*stream = '\0';
|
||||
stream = tmp;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2106,7 +2106,7 @@ NTSTATUS open_directory(connection_struct *conn,
|
||||
(unsigned int)create_disposition,
|
||||
(unsigned int)file_attributes));
|
||||
|
||||
if (is_ntfs_stream_name(fname)) {
|
||||
if (!(file_attributes & FILE_FLAG_POSIX_SEMANTICS) && is_ntfs_stream_name(fname)) {
|
||||
DEBUG(2, ("open_directory: %s is a stream name!\n", fname));
|
||||
return NT_STATUS_NOT_A_DIRECTORY;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user