You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Added patch to allow to open files/directories without any access rights in order to query attributes.
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
From 35cc6b5ed224e27ef833bb84cea092bb65b8ab12 Mon Sep 17 00:00:00 2001
|
||||
From e2337e9756c38d06661d6dabd4a04d97528c4ab1 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 7 Aug 2014 18:31:33 -0600
|
||||
Subject: server: Keep a pointer to parent's fd unix_name in the closed_fd
|
||||
structure.
|
||||
|
||||
---
|
||||
server/fd.c | 38 +++++++++++++++++++++-----------------
|
||||
server/fd.c | 38 +++++++++++++++++++++-----------------
|
||||
1 file changed, 21 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/server/fd.c b/server/fd.c
|
||||
index e3b722c..b022a3c 100644
|
||||
index 9a4aac4..cd62cc8 100644
|
||||
--- a/server/fd.c
|
||||
+++ b/server/fd.c
|
||||
@@ -164,7 +164,8 @@ struct closed_fd
|
||||
@@ -124,8 +124,8 @@ index e3b722c..b022a3c 100644
|
||||
- const char *unlink_name = "";
|
||||
int root_fd = -1;
|
||||
int rw_mode;
|
||||
|
||||
@@ -1752,8 +1756,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
int do_chmod = 0;
|
||||
@@ -1753,8 +1757,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
if (!(fd = alloc_fd_object())) return NULL;
|
||||
|
||||
fd->options = options;
|
||||
@@ -135,17 +135,17 @@ index e3b722c..b022a3c 100644
|
||||
{
|
||||
release_object( fd );
|
||||
return NULL;
|
||||
@@ -1810,7 +1813,8 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
@@ -1834,7 +1837,8 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
}
|
||||
|
||||
closed_fd->unix_fd = fd->unix_fd;
|
||||
- closed_fd->unlink[0] = 0;
|
||||
+ closed_fd->unlink = 0;
|
||||
+ closed_fd->unix_name = fd->unix_name;
|
||||
fstat( fd->unix_fd, &st );
|
||||
*mode = st.st_mode;
|
||||
|
||||
@@ -1851,7 +1855,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
if (do_chmod) fchmod( fd->unix_fd, *mode );
|
||||
fstat( fd->unix_fd, &st );
|
||||
@@ -1877,7 +1881,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
set_error( err );
|
||||
return NULL;
|
||||
}
|
||||
@@ -154,7 +154,7 @@ index e3b722c..b022a3c 100644
|
||||
if (flags & O_TRUNC)
|
||||
{
|
||||
if (S_ISDIR(st.st_mode))
|
||||
@@ -1870,7 +1874,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
@@ -1896,7 +1900,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode,
|
||||
set_error( STATUS_NOT_A_DIRECTORY );
|
||||
goto error;
|
||||
}
|
||||
@@ -164,5 +164,5 @@ index e3b722c..b022a3c 100644
|
||||
set_error( STATUS_INVALID_PARAMETER );
|
||||
goto error;
|
||||
--
|
||||
1.7.9.5
|
||||
2.3.3
|
||||
|
||||
|
@@ -1 +1,2 @@
|
||||
Fixes: [30397] Support for NtSetInformationFile class FileDispositionInformation
|
||||
Depends: server-File_Permissions
|
||||
|
Reference in New Issue
Block a user