diff --git a/debian/changelog b/debian/changelog index 1ca1a760..39e11653 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,5 @@ wine-staging (1.7.39) UNRELEASED; urgency=low + * Fix a build failure on MacOS caused by using of strndup in the server-Inherited_ACLs patchset. * Updated patchset for dinput-Events to be compatible with more games (fixes Wine Staging Bug #149). * Added patch for tests of RtlIpv6StringToAddress, RtlIpv{4,6}StringToAddressEx (by Mark Jansen). * Added patch to fix multithreading issues with fullscreen clipping. diff --git a/patches/server-ACL_Compat/0001-server-Add-compatibility-code-for-handling-the-old-m.patch b/patches/server-ACL_Compat/0001-server-Add-compatibility-code-for-handling-the-old-m.patch index fc4dc0e2..b89bba1b 100644 --- a/patches/server-ACL_Compat/0001-server-Add-compatibility-code-for-handling-the-old-m.patch +++ b/patches/server-ACL_Compat/0001-server-Add-compatibility-code-for-handling-the-old-m.patch @@ -1,4 +1,4 @@ -From 220f1650f507194fedd2102e7672c56563bbfa36 Mon Sep 17 00:00:00 2001 +From c7ee69405e7f18058ca0b1c05e8dfa7ee669df13 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Fri, 18 Apr 2014 15:21:00 -0600 Subject: server: Add compatibility code for handling the old method of storing @@ -9,7 +9,7 @@ Subject: server: Add compatibility code for handling the old method of storing 1 file changed, 164 insertions(+), 3 deletions(-) diff --git a/server/file.c b/server/file.c -index 431b8a1..f86da49 100644 +index 146ea68..4c72775 100644 --- a/server/file.c +++ b/server/file.c @@ -72,6 +72,7 @@ struct file @@ -20,15 +20,15 @@ index 431b8a1..f86da49 100644 static void file_dump( struct object *obj, int verbose ); static struct fd *file_get_fd( struct object *obj ); -@@ -336,6 +337,7 @@ static struct security_descriptor *file_get_parent_sd( struct fd *root, const ch +@@ -440,6 +441,7 @@ static struct security_descriptor *file_get_parent_sd( struct fd *root, const ch mode_t parent_mode = 0555; char *p, *parent_name; struct fd *parent_fd; + struct stat st; int unix_fd; - parent_name = strndup( child_name, child_len ); -@@ -367,6 +369,9 @@ static struct security_descriptor *file_get_parent_sd( struct fd *root, const ch + if (!(parent_name = mem_alloc( child_len + 1 ))) return NULL; +@@ -472,6 +474,9 @@ static struct security_descriptor *file_get_parent_sd( struct fd *root, const ch if (unix_fd != -1) { parent_sd = get_xattr_sd( unix_fd ); @@ -38,7 +38,7 @@ index 431b8a1..f86da49 100644 if (parent_sd) { sd = inherit_sd( parent_sd, is_dir ); -@@ -654,6 +659,160 @@ struct security_descriptor *get_xattr_sd( int fd ) +@@ -759,6 +764,160 @@ struct security_descriptor *get_xattr_sd( int fd ) return sd; } @@ -199,7 +199,7 @@ index 431b8a1..f86da49 100644 /* Convert generic rights into standard access rights */ void convert_generic_sd( struct security_descriptor *sd ) { -@@ -681,6 +840,7 @@ struct security_descriptor *get_file_sd( struct object *obj, struct fd *fd, mode +@@ -786,6 +945,7 @@ struct security_descriptor *get_file_sd( struct object *obj, struct fd *fd, mode int unix_fd = get_unix_fd( fd ); struct stat st; struct security_descriptor *sd; @@ -207,7 +207,7 @@ index 431b8a1..f86da49 100644 if (unix_fd == -1 || fstat( unix_fd, &st ) == -1) return obj->sd; -@@ -690,11 +850,12 @@ struct security_descriptor *get_file_sd( struct object *obj, struct fd *fd, mode +@@ -795,11 +955,12 @@ struct security_descriptor *get_file_sd( struct object *obj, struct fd *fd, mode (st.st_uid == *uid)) return obj->sd; @@ -224,5 +224,5 @@ index 431b8a1..f86da49 100644 *mode = st.st_mode; -- -2.1.0 +2.3.2 diff --git a/patches/server-Inherited_ACLs/0001-server-Inherit-security-attributes-from-parent-direc.patch b/patches/server-Inherited_ACLs/0001-server-Inherit-security-attributes-from-parent-direc.patch index 9dded63d..008c8578 100644 --- a/patches/server-Inherited_ACLs/0001-server-Inherit-security-attributes-from-parent-direc.patch +++ b/patches/server-Inherited_ACLs/0001-server-Inherit-security-attributes-from-parent-direc.patch @@ -1,4 +1,4 @@ -From 36c98dd468a20204bc12809b6f290340a5f8c010 Mon Sep 17 00:00:00 2001 +From 342e7b54a72ca30753ee0b7e2651582574869887 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Fri, 18 Apr 2014 14:08:36 -0600 Subject: server: Inherit security attributes from parent directories on @@ -6,14 +6,14 @@ Subject: server: Inherit security attributes from parent directories on --- dlls/advapi32/tests/security.c | 40 +++++++++++- - server/file.c | 136 +++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 175 insertions(+), 1 deletion(-) + server/file.c | 137 +++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 176 insertions(+), 1 deletion(-) diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c -index 82c0639..3e88c2e 100644 +index df6f8ca..b2f6052 100644 --- a/dlls/advapi32/tests/security.c +++ b/dlls/advapi32/tests/security.c -@@ -3117,10 +3117,11 @@ static void test_CreateDirectoryA(void) +@@ -3116,10 +3116,11 @@ static void test_CreateDirectoryA(void) ACL_SIZE_INFORMATION acl_size; ACCESS_ALLOWED_ACE *ace; SECURITY_ATTRIBUTES sa; @@ -26,7 +26,7 @@ index 82c0639..3e88c2e 100644 DWORD error; PACL pDacl; -@@ -3213,6 +3214,43 @@ static void test_CreateDirectoryA(void) +@@ -3212,6 +3213,43 @@ static void test_CreateDirectoryA(void) } LocalFree(pSD); @@ -71,7 +71,7 @@ index 82c0639..3e88c2e 100644 HeapFree(GetProcessHeap(), 0, user); bret = RemoveDirectoryA(tmpdir); diff --git a/server/file.c b/server/file.c -index 57100c1..431b8a1 100644 +index 09b7811..188e352 100644 --- a/server/file.c +++ b/server/file.c @@ -71,6 +71,7 @@ struct file @@ -82,7 +82,7 @@ index 57100c1..431b8a1 100644 static void file_dump( struct object *obj, int verbose ); static struct fd *file_get_fd( struct object *obj ); -@@ -248,11 +249,141 @@ void set_xattr_sd( int fd, const struct security_descriptor *sd, const SID *user +@@ -252,11 +253,142 @@ void set_xattr_sd( int fd, const struct security_descriptor *sd, const SID *user xattr_fset( fd, WINE_XATTR_SD, buffer, len ); } @@ -175,8 +175,9 @@ index 57100c1..431b8a1 100644 + struct fd *parent_fd; + int unix_fd; + -+ parent_name = strndup( child_name, child_len ); -+ if (!parent_name) return NULL; ++ if (!(parent_name = mem_alloc( child_len + 1 ))) return NULL; ++ memcpy( parent_name, child_name, child_len ); ++ parent_name[child_len] = 0; + + /* skip trailing slashes */ + p = parent_name + strlen( parent_name ) - 1; @@ -224,7 +225,7 @@ index 57100c1..431b8a1 100644 const SID *owner = NULL, *group = NULL; struct object *obj = NULL; struct fd *fd; -@@ -282,6 +413,10 @@ static struct object *create_file( struct fd *root, const char *nameptr, data_si +@@ -286,6 +418,10 @@ static struct object *create_file( struct fd *root, const char *nameptr, data_si default: set_error( STATUS_INVALID_PARAMETER ); goto done; } @@ -235,7 +236,7 @@ index 57100c1..431b8a1 100644 if (sd) { owner = sd_get_owner( sd ); -@@ -325,6 +460,7 @@ static struct object *create_file( struct fd *root, const char *nameptr, data_si +@@ -329,6 +465,7 @@ static struct object *create_file( struct fd *root, const char *nameptr, data_si release_object( fd ); done: @@ -244,5 +245,5 @@ index 57100c1..431b8a1 100644 return obj; } -- -2.1.0 +2.3.2