diff --git a/patches/ntdll-FileDispositionInformation/0002-server-Do-not-allow-to-set-disposition-on-file-which.patch b/patches/ntdll-FileDispositionInformation/0002-server-Do-not-allow-to-set-disposition-on-file-which.patch index fec7e12d..10c16a39 100644 --- a/patches/ntdll-FileDispositionInformation/0002-server-Do-not-allow-to-set-disposition-on-file-which.patch +++ b/patches/ntdll-FileDispositionInformation/0002-server-Do-not-allow-to-set-disposition-on-file-which.patch @@ -1,4 +1,4 @@ -From 28df8b2cf6f5a038f3449f78e8809ae0cf10d345 Mon Sep 17 00:00:00 2001 +From 3a361998b65a72b219bc342cc88d6fe66cc9e45b Mon Sep 17 00:00:00 2001 From: Qian Hong Date: Fri, 17 Apr 2015 18:39:59 +0800 Subject: [PATCH] server: Do not allow to set disposition on file which has a @@ -10,10 +10,10 @@ Subject: [PATCH] server: Do not allow to set disposition on file which has a 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index cafafa1..5dbf6d5 100644 +index c8979f6f..49c2de22 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c -@@ -3059,7 +3059,6 @@ todo_wine +@@ -3060,7 +3060,6 @@ todo_wine ok( mapping != NULL, "failed to create file mapping\n"); fdi.DoDeleteFile = TRUE; res = pNtSetInformationFile( handle, &io, &fdi, sizeof fdi, FileDispositionInformation ); @@ -21,7 +21,7 @@ index cafafa1..5dbf6d5 100644 ok( res == STATUS_CANNOT_DELETE, "unexpected FileDispositionInformation result (expected STATUS_CANNOT_DELETE, got %x)\n", res ); CloseHandle( handle ); fileDeleted = GetFileAttributesA( buffer ) == INVALID_FILE_ATTRIBUTES && GetLastError() == ERROR_FILE_NOT_FOUND; -@@ -3093,7 +3092,6 @@ todo_wine +@@ -3094,7 +3093,6 @@ todo_wine CloseHandle( mapping ); fdi.DoDeleteFile = TRUE; res = pNtSetInformationFile( handle, &io, &fdi, sizeof fdi, FileDispositionInformation ); @@ -30,10 +30,10 @@ index cafafa1..5dbf6d5 100644 CloseHandle( handle ); fileDeleted = GetFileAttributesA( buffer ) == INVALID_FILE_ATTRIBUTES && GetLastError() == ERROR_FILE_NOT_FOUND; diff --git a/server/fd.c b/server/fd.c -index 6118f52..25bb24d 100644 +index b700f235..34939d05 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -2221,6 +2221,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl +@@ -2309,6 +2309,7 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl static void set_fd_disposition( struct fd *fd, int unlink ) { struct stat st; @@ -41,7 +41,7 @@ index 6118f52..25bb24d 100644 if (!fd->inode) { -@@ -2254,6 +2255,17 @@ static void set_fd_disposition( struct fd *fd, int unlink ) +@@ -2342,6 +2343,17 @@ static void set_fd_disposition( struct fd *fd, int unlink ) return; } @@ -56,9 +56,9 @@ index 6118f52..25bb24d 100644 + } + } + - fd->closed->unlink = unlink || (fd->options & FILE_DELETE_ON_CLOSE); - } - + fd->closed->unlink = unlink ? 1 : 0; + if (fd->options & FILE_DELETE_ON_CLOSE) + fd->closed->unlink = -1; -- -1.9.1 +2.19.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index c2aaa5ba..6fc2319c 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "5e0d1c89ed774e78d60709e5239d56927150d03d" + echo "e9e12bda62fee68e9fbac5849f7ad1e199ee38b7" } # Show version information diff --git a/patches/widl-SLTG_Typelib_Support/0001-widl-Add-initial-implementation-of-SLTG-typelib-gene.patch b/patches/widl-SLTG_Typelib_Support/0001-widl-Add-initial-implementation-of-SLTG-typelib-gene.patch index a281dbf3..0c189f5d 100644 --- a/patches/widl-SLTG_Typelib_Support/0001-widl-Add-initial-implementation-of-SLTG-typelib-gene.patch +++ b/patches/widl-SLTG_Typelib_Support/0001-widl-Add-initial-implementation-of-SLTG-typelib-gene.patch @@ -1,4 +1,4 @@ -From 4289f2b83b6c6c4b3579501deb4b210ff0b28e1d Mon Sep 17 00:00:00 2001 +From dd2e4e6f027c1517870cf678c954351ab79c9510 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 23 Dec 2015 19:37:37 +0800 Subject: [PATCH] widl: Add initial implementation of SLTG typelib generator. @@ -6,13 +6,13 @@ Subject: [PATCH] widl: Add initial implementation of SLTG typelib generator. --- tools/widl/Makefile.in | 3 +- tools/widl/typelib.h | 1 + - tools/widl/widl.c | 8 +- + tools/widl/widl.c | 6 + tools/widl/write_sltg.c | 557 ++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 567 insertions(+), 2 deletions(-) + 4 files changed, 566 insertions(+), 1 deletion(-) create mode 100644 tools/widl/write_sltg.c diff --git a/tools/widl/Makefile.in b/tools/widl/Makefile.in -index e06d6cc5b3..e7a41c3082 100644 +index e06d6cc5..e7a41c30 100644 --- a/tools/widl/Makefile.in +++ b/tools/widl/Makefile.in @@ -14,7 +14,8 @@ C_SRCS = \ @@ -26,7 +26,7 @@ index e06d6cc5b3..e7a41c3082 100644 LEX_SRCS = parser.l BISON_SRCS = parser.y diff --git a/tools/widl/typelib.h b/tools/widl/typelib.h -index 7df7d29082..5d9f45a7c3 100644 +index 7df7d290..5d9f45a7 100644 --- a/tools/widl/typelib.h +++ b/tools/widl/typelib.h @@ -83,4 +83,5 @@ enum VARENUM { @@ -36,28 +36,26 @@ index 7df7d29082..5d9f45a7c3 100644 +extern int create_sltg_typelib(typelib_t *typelib); #endif diff --git a/tools/widl/widl.c b/tools/widl/widl.c -index 96fb2403dd..2f3ac42ed3 100644 +index 410efb4c..2e980bf8 100644 --- a/tools/widl/widl.c +++ b/tools/widl/widl.c -@@ -165,7 +165,8 @@ enum { - WIN32_ALIGN_OPTION, - WIN64_ALIGN_OPTION, - APP_CONFIG_OPTION, -- ROBUST_OPTION -+ ROBUST_OPTION, -+ OLD_TYPELIB_OPTION - }; - - static const char short_options[] = -@@ -188,6 +189,7 @@ static const struct option long_options[] = { - { "win32-align", 1, NULL, WIN32_ALIGN_OPTION }, - { "win64-align", 1, NULL, WIN64_ALIGN_OPTION }, - { "app_config", 0, NULL, APP_CONFIG_OPTION }, +@@ -158,6 +158,7 @@ enum { + DLLDATA_OPTION, + DLLDATA_ONLY_OPTION, + LOCAL_STUBS_OPTION, ++ OLD_TYPELIB_OPTION, + PREFIX_ALL_OPTION, + PREFIX_CLIENT_OPTION, + PREFIX_SERVER_OPTION, +@@ -182,6 +183,7 @@ static const struct option long_options[] = { + { "local-stubs", 1, NULL, LOCAL_STUBS_OPTION }, + { "ns_prefix", 0, NULL, RT_NS_PREFIX }, + { "oldnames", 0, NULL, OLDNAMES_OPTION }, + { "oldtlb", 0, NULL, OLD_TYPELIB_OPTION }, - { NULL, 0, NULL, 0 } - }; - -@@ -685,6 +687,10 @@ int main(int argc,char *argv[]) + { "output", 0, NULL, 'o' }, + { "prefix-all", 1, NULL, PREFIX_ALL_OPTION }, + { "prefix-client", 1, NULL, PREFIX_CLIENT_OPTION }, +@@ -697,6 +699,10 @@ int main(int argc,char *argv[]) do_everything = 0; do_typelib = 1; break; @@ -70,7 +68,7 @@ index 96fb2403dd..2f3ac42ed3 100644 break; diff --git a/tools/widl/write_sltg.c b/tools/widl/write_sltg.c new file mode 100644 -index 0000000000..c4ddaed944 +index 00000000..c4ddaed9 --- /dev/null +++ b/tools/widl/write_sltg.c @@ -0,0 +1,557 @@