mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 7350682aa6ec7702f26f76ccbaa7d2f11a85c93d.
This commit is contained in:
parent
6e91988232
commit
6fb052e890
@ -1,4 +1,4 @@
|
||||
From f86aa112cd8f4f4372ea065866f2a98afa5d9d3b Mon Sep 17 00:00:00 2001
|
||||
From 71b17871cc75d035ca35b9f8641b6604cc9bb600 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 4 Aug 2014 00:29:26 +0200
|
||||
Subject: server: Show warning if message mode is not supported.
|
||||
@ -13,10 +13,10 @@ missing message mode support.
|
||||
3 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index cd34194..45ff692 100644
|
||||
index 4cac2ca..d585d6c 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -3507,6 +3507,7 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access,
|
||||
@@ -3506,6 +3506,7 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access,
|
||||
NTSTATUS status;
|
||||
data_size_t len;
|
||||
struct object_attributes *objattr;
|
||||
@ -24,7 +24,7 @@ index cd34194..45ff692 100644
|
||||
|
||||
TRACE("(%p %x %s %p %x %d %x %d %d %d %d %d %d %p)\n",
|
||||
handle, access, debugstr_w(attr->ObjectName->Buffer), iosb, sharing, dispo,
|
||||
@@ -3519,16 +3520,17 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access,
|
||||
@@ -3518,15 +3519,16 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access,
|
||||
|
||||
if ((status = alloc_object_attributes( attr, &objattr, &len ))) return status;
|
||||
|
||||
@ -35,7 +35,6 @@ index cd34194..45ff692 100644
|
||||
SERVER_START_REQ( create_named_pipe )
|
||||
{
|
||||
req->access = access;
|
||||
req->attributes = attr->Attributes;
|
||||
req->options = options;
|
||||
req->sharing = sharing;
|
||||
- req->flags =
|
||||
@ -46,7 +45,7 @@ index cd34194..45ff692 100644
|
||||
req->maxinstances = max_inst;
|
||||
req->outsize = outbound_quota;
|
||||
req->insize = inbound_quota;
|
||||
@@ -3536,9 +3538,13 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access,
|
||||
@@ -3534,9 +3536,13 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access,
|
||||
wine_server_add_data( req, objattr, len );
|
||||
status = wine_server_call( req );
|
||||
if (!status) *handle = wine_server_ptr_handle( reply->handle );
|
||||
@ -61,10 +60,10 @@ index cd34194..45ff692 100644
|
||||
return status;
|
||||
}
|
||||
diff --git a/server/named_pipe.c b/server/named_pipe.c
|
||||
index 8d5753a..79ca3a1 100644
|
||||
index acedcc5..94c28b1 100644
|
||||
--- a/server/named_pipe.c
|
||||
+++ b/server/named_pipe.c
|
||||
@@ -933,6 +933,7 @@ DECL_HANDLER(create_named_pipe)
|
||||
@@ -937,6 +937,7 @@ DECL_HANDLER(create_named_pipe)
|
||||
return;
|
||||
}
|
||||
|
||||
@ -73,10 +72,10 @@ index 8d5753a..79ca3a1 100644
|
||||
|
||||
if (!objattr_is_valid( objattr, get_req_data_size() ))
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index ea5bd61..e83e65e 100644
|
||||
index 4becb8f..9facc59 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -2382,6 +2382,7 @@ enum message_type
|
||||
@@ -2376,6 +2376,7 @@ enum message_type
|
||||
unsigned int flags;
|
||||
VARARG(objattr,object_attributes); /* object attributes */
|
||||
@REPLY
|
||||
|
@ -1,17 +1,17 @@
|
||||
From ab880fafaf84e637a978a39488413b25e32f5217 Mon Sep 17 00:00:00 2001
|
||||
From 12b1d27763ce61ee38b3694e68c44a96d9b17102 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Wed, 20 Aug 2014 15:28:00 -0600
|
||||
Subject: ntdll: Implement storing DOS attributes in NtCreateFile.
|
||||
|
||||
---
|
||||
dlls/ntdll/file.c | 76 ++++++++++++++++++++++++++++----------------
|
||||
dlls/ntdll/file.c | 74 ++++++++++++++++++++++++++++----------------
|
||||
dlls/ntdll/tests/directory.c | 24 ++++++--------
|
||||
include/wine/port.h | 2 ++
|
||||
libs/port/xattr.c | 20 ++++++++++++
|
||||
4 files changed, 80 insertions(+), 42 deletions(-)
|
||||
4 files changed, 79 insertions(+), 41 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index a5fbda7..a22ca20 100644
|
||||
index 3dfcbf8..13787ba 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -219,6 +219,21 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr )
|
||||
@ -46,7 +46,7 @@ index a5fbda7..a22ca20 100644
|
||||
ANSI_STRING unix_name;
|
||||
BOOL created = FALSE;
|
||||
|
||||
@@ -273,37 +291,35 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -273,36 +291,34 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
io->u.Status = STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@ -70,7 +70,6 @@ index a5fbda7..a22ca20 100644
|
||||
- SERVER_START_REQ( create_file )
|
||||
- {
|
||||
- req->access = access;
|
||||
- req->attributes = attr->Attributes;
|
||||
- req->sharing = sharing;
|
||||
- req->create = disposition;
|
||||
- req->options = options;
|
||||
@ -94,7 +93,6 @@ index a5fbda7..a22ca20 100644
|
||||
+ SERVER_START_REQ( create_file )
|
||||
+ {
|
||||
+ req->access = access;
|
||||
+ req->attributes = attr->Attributes;
|
||||
+ req->sharing = sharing;
|
||||
+ req->create = disposition;
|
||||
+ req->options = options;
|
||||
@ -109,7 +107,7 @@ index a5fbda7..a22ca20 100644
|
||||
|
||||
if (io->u.Status == STATUS_SUCCESS)
|
||||
{
|
||||
@@ -325,6 +341,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -324,6 +340,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
io->Information = FILE_OVERWRITTEN;
|
||||
break;
|
||||
}
|
||||
@ -121,7 +119,7 @@ index a5fbda7..a22ca20 100644
|
||||
}
|
||||
else if (io->u.Status == STATUS_TOO_MANY_OPENED_FILES)
|
||||
{
|
||||
@@ -332,6 +353,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
@@ -331,6 +352,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT
|
||||
if (!once++) ERR_(winediag)( "Too many open files, ulimit -n probably needs to be increased\n" );
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "3198fb0c1c3779882944659d52a676319ffcc68d"
|
||||
echo "7350682aa6ec7702f26f76ccbaa7d2f11a85c93d"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2884ad4a99443701819564254dc21289d6f13aec Mon Sep 17 00:00:00 2001
|
||||
From e3abe63e7f3f1c3543e9bafb4b06ac41b4f4273f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 30 Mar 2015 12:50:21 +0200
|
||||
Subject: server: Temporarily store the full security descriptor for file
|
||||
@ -12,10 +12,10 @@ Subject: server: Temporarily store the full security descriptor for file
|
||||
4 files changed, 74 insertions(+), 40 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
|
||||
index 40cf23c..57adc4e 100644
|
||||
index eb9e816..77a1fcf 100644
|
||||
--- a/dlls/advapi32/tests/security.c
|
||||
+++ b/dlls/advapi32/tests/security.c
|
||||
@@ -3311,7 +3311,6 @@ static void test_CreateDirectoryA(void)
|
||||
@@ -3318,7 +3318,6 @@ static void test_CreateDirectoryA(void)
|
||||
ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
|
||||
bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
|
||||
ok(bret, "GetAclInformation failed\n");
|
||||
@ -23,7 +23,7 @@ index 40cf23c..57adc4e 100644
|
||||
ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
|
||||
acl_size.AceCount);
|
||||
LocalFree(pSD);
|
||||
@@ -3387,7 +3386,6 @@ static void test_CreateDirectoryA(void)
|
||||
@@ -3394,7 +3393,6 @@ static void test_CreateDirectoryA(void)
|
||||
ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
|
||||
bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
|
||||
ok(bret, "GetAclInformation failed\n");
|
||||
@ -31,7 +31,7 @@ index 40cf23c..57adc4e 100644
|
||||
ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
|
||||
acl_size.AceCount);
|
||||
LocalFree(pSD);
|
||||
@@ -3533,7 +3531,6 @@ static void test_CreateDirectoryA(void)
|
||||
@@ -3540,7 +3538,6 @@ static void test_CreateDirectoryA(void)
|
||||
ok(error == ERROR_SUCCESS, "GetNamedSecurityInfo failed with error %d\n", error);
|
||||
bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
|
||||
ok(bret, "GetAclInformation failed\n");
|
||||
@ -39,7 +39,7 @@ index 40cf23c..57adc4e 100644
|
||||
ok(acl_size.AceCount == 0, "GetAclInformation returned unexpected entry count (%d != 0).\n",
|
||||
acl_size.AceCount);
|
||||
LocalFree(pSD);
|
||||
@@ -4508,22 +4505,22 @@ static void test_GetSecurityInfo(void)
|
||||
@@ -4517,22 +4514,22 @@ static void test_GetSecurityInfo(void)
|
||||
bret = pGetAce(pDacl, 0, (VOID **)&ace);
|
||||
ok(bret, "Failed to get Current User ACE.\n");
|
||||
bret = EqualSid(&ace->SidStart, user_sid);
|
||||
@ -69,10 +69,10 @@ index 40cf23c..57adc4e 100644
|
||||
LocalFree(pSD);
|
||||
CloseHandle(obj);
|
||||
diff --git a/server/change.c b/server/change.c
|
||||
index b334fd1..2e98f5c 100644
|
||||
index b3ee681..a631925 100644
|
||||
--- a/server/change.c
|
||||
+++ b/server/change.c
|
||||
@@ -1022,7 +1022,8 @@ static int dir_add_to_existing_notify( struct dir *dir )
|
||||
@@ -1030,7 +1030,8 @@ static int dir_add_to_existing_notify( struct dir *dir )
|
||||
|
||||
#endif /* USE_INOTIFY */
|
||||
|
||||
@ -82,7 +82,7 @@ index b334fd1..2e98f5c 100644
|
||||
{
|
||||
struct dir *dir;
|
||||
|
||||
@@ -1041,6 +1042,11 @@ struct object *create_dir_obj( struct fd *fd, unsigned int access, mode_t mode )
|
||||
@@ -1049,6 +1050,11 @@ struct object *create_dir_obj( struct fd *fd, unsigned int access, mode_t mode )
|
||||
dir->uid = ~(uid_t)0;
|
||||
set_fd_user( fd, &dir_fd_ops, &dir->obj );
|
||||
|
||||
@ -95,10 +95,10 @@ index b334fd1..2e98f5c 100644
|
||||
|
||||
return &dir->obj;
|
||||
diff --git a/server/file.c b/server/file.c
|
||||
index 011c29f..175fbce 100644
|
||||
index 5d1466b..7c5e02b 100644
|
||||
--- a/server/file.c
|
||||
+++ b/server/file.c
|
||||
@@ -172,7 +172,8 @@ struct file *create_file_for_fd_obj( struct fd *fd, unsigned int access, unsigne
|
||||
@@ -173,7 +173,8 @@ struct file *create_file_for_fd_obj( struct fd *fd, unsigned int access, unsigne
|
||||
return file;
|
||||
}
|
||||
|
||||
@ -108,7 +108,7 @@ index 011c29f..175fbce 100644
|
||||
{
|
||||
struct file *file = alloc_object( &file_ops );
|
||||
|
||||
@@ -183,6 +184,12 @@ static struct object *create_file_obj( struct fd *fd, unsigned int access, mode_
|
||||
@@ -184,6 +185,12 @@ static struct object *create_file_obj( struct fd *fd, unsigned int access, mode_
|
||||
file->fd = fd;
|
||||
grab_object( fd );
|
||||
set_fd_user( fd, &file_fd_ops, &file->obj );
|
||||
@ -121,7 +121,7 @@ index 011c29f..175fbce 100644
|
||||
return &file->obj;
|
||||
}
|
||||
|
||||
@@ -249,11 +256,11 @@ static struct object *create_file( struct fd *root, const char *nameptr, data_si
|
||||
@@ -250,11 +257,11 @@ static struct object *create_file( struct fd *root, const char *nameptr, data_si
|
||||
if (!fd) goto done;
|
||||
|
||||
if (S_ISDIR(mode))
|
||||
@ -135,7 +135,7 @@ index 011c29f..175fbce 100644
|
||||
|
||||
release_object( fd );
|
||||
|
||||
@@ -562,46 +569,66 @@ mode_t sd_to_mode( const struct security_descriptor *sd, const SID *owner )
|
||||
@@ -570,46 +577,66 @@ mode_t sd_to_mode( const struct security_descriptor *sd, const SID *owner )
|
||||
int set_file_sd( struct object *obj, struct fd *fd, mode_t *mode, uid_t *uid,
|
||||
const struct security_descriptor *sd, unsigned int set_info )
|
||||
{
|
||||
@ -227,15 +227,15 @@ index 011c29f..175fbce 100644
|
||||
}
|
||||
|
||||
static struct object *file_open_file( struct object *obj, unsigned int access,
|
||||
@@ -733,7 +760,10 @@ DECL_HANDLER(create_file)
|
||||
@@ -741,7 +768,10 @@ DECL_HANDLER(create_file)
|
||||
if ((file = create_file( root_fd, name, name_len, req->access, req->sharing,
|
||||
req->create, req->options, req->attrs, sd )))
|
||||
{
|
||||
- reply->handle = alloc_handle( current->process, file, req->access, req->attributes );
|
||||
- reply->handle = alloc_handle( current->process, file, req->access, objattr->attributes );
|
||||
+ if (get_error() == STATUS_OBJECT_NAME_EXISTS)
|
||||
+ reply->handle = alloc_handle( current->process, file, req->access, req->attributes );
|
||||
+ reply->handle = alloc_handle( current->process, file, req->access, objattr->attributes );
|
||||
+ else
|
||||
+ reply->handle = alloc_handle_no_access_check( current->process, file, req->access, req->attributes );
|
||||
+ reply->handle = alloc_handle_no_access_check( current->process, file, req->access, objattr->attributes );
|
||||
release_object( file );
|
||||
}
|
||||
if (root_fd) release_object( root_fd );
|
||||
@ -254,5 +254,5 @@ index b9e27e2..3274c5c 100644
|
||||
|
||||
/* completion */
|
||||
--
|
||||
2.4.2
|
||||
2.6.4
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user