diff --git a/patches/ntdll-FileDispositionInformation/0002-server-Add-support-for-setting-file-disposition-info.patch b/patches/ntdll-FileDispositionInformation/0002-server-Add-support-for-setting-file-disposition-info.patch index 317f20e6..2d2bbad3 100644 --- a/patches/ntdll-FileDispositionInformation/0002-server-Add-support-for-setting-file-disposition-info.patch +++ b/patches/ntdll-FileDispositionInformation/0002-server-Add-support-for-setting-file-disposition-info.patch @@ -1,17 +1,16 @@ -From 65b27926c9e006f41496c42886d55956047d4b69 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov +From 2009dee9faca0fb2ac2b1422a62445a523c4fe56 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner Date: Thu, 7 Aug 2014 20:32:19 -0600 Subject: server: Add support for setting file disposition information. +Based on a patch by Dmitry Timoshkov. --- dlls/kernel32/tests/file.c | 1 - dlls/ntdll/file.c | 16 ++++++++++++++++ dlls/ntdll/tests/file.c | 13 ++----------- - server/fd.c | 30 ++++++++++++++++++++++++++++++ - server/file.c | 23 +++++++++++++++++++++++ - server/file.h | 1 + - server/protocol.def | 6 ++++++ - 7 files changed, 78 insertions(+), 12 deletions(-) + server/fd.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ + server/protocol.def | 7 +++++++ + 5 files changed, 69 insertions(+), 12 deletions(-) diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c index 53d225c..dd64c91 100644 @@ -26,7 +25,7 @@ index 53d225c..dd64c91 100644 CloseHandle(file); diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index d081750..86063b6 100644 +index d081750..314c233 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -2765,6 +2765,22 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, @@ -38,11 +37,11 @@ index d081750..86063b6 100644 + { + FILE_DISPOSITION_INFORMATION *info = ptr; + -+ SERVER_START_REQ( set_file_info ) ++ SERVER_START_REQ( set_fd_info ) + { + req->handle = wine_server_obj_handle( handle ); + req->unlink = info->DoDeleteFile; -+ io->u.Status = wine_server_call( req ); ++ io->u.Status = wine_server_call( req ); + } + SERVER_END_REQ; + } else @@ -53,7 +52,7 @@ index d081750..86063b6 100644 FIXME("Unsupported class (%d)\n", class); io->u.Status = STATUS_NOT_IMPLEMENTED; diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index fed1207..9cb3bd2 100644 +index 86a4516..57ae15c 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -1473,7 +1473,6 @@ static void test_file_disposition_information(void) @@ -149,21 +148,27 @@ index fed1207..9cb3bd2 100644 RemoveDirectoryA( buffer ); } diff --git a/server/fd.c b/server/fd.c -index 7c2d717..442e639 100644 +index 6b95d6c..f607261 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -1942,6 +1942,36 @@ unsigned int get_fd_options( struct fd *fd ) - return fd->options; +@@ -2214,6 +2214,39 @@ static struct fd *get_handle_fd_obj( struct process *process, obj_handle_t handl + return fd; } +/* set disposition for the fd */ -+void set_fd_disposition( struct fd *fd, int unlink ) ++static void set_fd_disposition( struct fd *fd, int unlink ) +{ + struct stat st; + ++ if (!fd->inode) ++ { ++ set_error( STATUS_OBJECT_TYPE_MISMATCH ); ++ return; ++ } ++ + if (fd->unix_fd == -1) + { -+ set_error( STATUS_INVALID_HANDLE ); ++ set_error( fd->no_fd_status ); + return; + } + @@ -173,82 +178,52 @@ index 7c2d717..442e639 100644 + return; + } + ++ /* can't unlink special files */ + if (unlink && !S_ISDIR(st.st_mode) && !S_ISREG(st.st_mode)) + { -+ /* can't unlink special files */ + set_error( STATUS_INVALID_PARAMETER ); + return; + } + -+ if (unlink) -+ fd->closed->unlink = 1; -+ else if (!(fd->options & FILE_DELETE_ON_CLOSE)) -+ fd->closed->unlink = 0; ++ fd->closed->unlink = unlink || (fd->options & FILE_DELETE_ON_CLOSE); +} + - /* retrieve the unix fd for an object */ - int get_unix_fd( struct fd *fd ) + struct completion *fd_get_completion( struct fd *fd, apc_param_t *p_key ) { -diff --git a/server/file.c b/server/file.c -index e70304f..098c705 100644 ---- a/server/file.c -+++ b/server/file.c -@@ -749,3 +749,26 @@ DECL_HANDLER(unlock_file) - release_object( file ); + *p_key = fd->comp_key; +@@ -2409,3 +2442,14 @@ DECL_HANDLER(add_fd_completion) + release_object( fd ); } } + -+/* set file information */ -+DECL_HANDLER(set_file_info) ++/* set fd information */ ++DECL_HANDLER(set_fd_info) +{ -+ struct file *file; -+ -+ if ((file = get_file_obj( current->process, req->handle, DELETE ))) ++ struct fd *fd = get_handle_fd_obj( current->process, req->handle, DELETE ); ++ if (fd) + { -+ set_fd_disposition( file->fd, req->unlink ); -+ release_object( file ); -+ return; -+ } -+ -+ if (get_error() == STATUS_OBJECT_TYPE_MISMATCH) -+ { -+ clear_error(); -+ if ((file = (struct file *)get_dir_obj( current->process, req->handle, DELETE ))) -+ { -+ set_fd_disposition( file->fd, req->unlink ); -+ release_object( file ); -+ } ++ set_fd_disposition( fd, req->unlink ); ++ release_object( fd ); + } +} -diff --git a/server/file.h b/server/file.h -index b5e0ca7..460656f 100644 ---- a/server/file.h -+++ b/server/file.h -@@ -70,6 +70,7 @@ extern struct fd *get_fd_object_for_mapping( struct fd *fd, unsigned int access, - extern void *get_fd_user( struct fd *fd ); - extern void set_fd_user( struct fd *fd, const struct fd_ops *ops, struct object *user ); - extern unsigned int get_fd_options( struct fd *fd ); -+extern void set_fd_disposition( struct fd *fd, int unlink ); - extern int get_unix_fd( struct fd *fd ); - extern int is_same_file_fd( struct fd *fd1, struct fd *fd2 ); - extern int is_fd_removable( struct fd *fd ); diff --git a/server/protocol.def b/server/protocol.def -index 9e5e416..d71f5ef 100644 +index ffee0c0..ea9eb12 100644 --- a/server/protocol.def +++ b/server/protocol.def -@@ -1200,6 +1200,12 @@ enum server_fd_type +@@ -3525,6 +3525,13 @@ enum coords_relative @END -+/* Set file information */ -+@REQ(set_file_info) -+ obj_handle_t handle; /* handle to the file */ ++/* set fd information */ ++@REQ(set_fd_info) ++ obj_handle_t handle; /* handle to a file or directory */ + int unlink; /* whether to unlink file on close */ +@END + - /* Create a socket */ - @REQ(create_socket) - unsigned int access; /* wanted access rights */ ++ + /* Retrieve layered info for a window */ + @REQ(get_window_layered_info) + user_handle_t handle; /* handle to the window */ -- -2.4.2 +2.5.0 diff --git a/patches/ntdll-FileDispositionInformation/0003-server-Do-not-permit-FileDispositionInformation-to-d.patch b/patches/ntdll-FileDispositionInformation/0003-server-Do-not-permit-FileDispositionInformation-to-d.patch index 7e7c50f4..0e24360a 100644 --- a/patches/ntdll-FileDispositionInformation/0003-server-Do-not-permit-FileDispositionInformation-to-d.patch +++ b/patches/ntdll-FileDispositionInformation/0003-server-Do-not-permit-FileDispositionInformation-to-d.patch @@ -1,4 +1,4 @@ -From edb8a6ab85a4c07409a8b12ffd3d5955f32e2952 Mon Sep 17 00:00:00 2001 +From 3869f9533a5ee475fc7e315f1905334da13b6650 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Thu, 7 Aug 2014 21:14:25 -0600 Subject: server: Do not permit FileDispositionInformation to delete a file @@ -10,10 +10,10 @@ Subject: server: Do not permit FileDispositionInformation to delete a file 2 files changed, 35 insertions(+) diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index 874aa4d..1e7edc3 100644 +index 57ae15c..fe07643 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c -@@ -1491,6 +1491,20 @@ static void test_file_disposition_information(void) +@@ -1507,6 +1507,20 @@ static void test_file_disposition_information(void) /* cannot set disposition on readonly file */ GetTempFileNameA( tmp_path, "dis", 0, buffer ); @@ -34,7 +34,7 @@ index 874aa4d..1e7edc3 100644 handle = CreateFileA(buffer, GENERIC_WRITE | DELETE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_READONLY, 0); ok( handle != INVALID_HANDLE_VALUE, "failed to create temp file\n" ); fdi.DoDeleteFile = TRUE; -@@ -1504,6 +1518,20 @@ static void test_file_disposition_information(void) +@@ -1520,6 +1534,20 @@ static void test_file_disposition_information(void) SetFileAttributesA( buffer, FILE_ATTRIBUTE_NORMAL ); DeleteFileA( buffer ); @@ -56,23 +56,23 @@ index 874aa4d..1e7edc3 100644 GetTempFileNameA( tmp_path, "dis", 0, buffer ); handle = CreateFileA(buffer, GENERIC_WRITE | DELETE, 0, NULL, CREATE_ALWAYS, 0, 0); diff --git a/server/fd.c b/server/fd.c -index 442e639..d11d98c 100644 +index f607261..0bac57d 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -1966,6 +1966,13 @@ void set_fd_disposition( struct fd *fd, int unlink ) +@@ -2244,6 +2244,13 @@ static void set_fd_disposition( struct fd *fd, int unlink ) return; } ++ /* can't unlink files we don't have permission to access */ + if (unlink && !(st.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH))) + { -+ /* can't unlink files we don't have permission to access */ + set_error( STATUS_CANNOT_DELETE ); + return; + } + - if (unlink) - fd->closed->unlink = 1; - else if (!(fd->options & FILE_DELETE_ON_CLOSE)) + fd->closed->unlink = unlink || (fd->options & FILE_DELETE_ON_CLOSE); + } + -- -2.4.2 +2.5.0 diff --git a/patches/ntdll-FileDispositionInformation/0005-server-Do-not-allow-to-set-disposition-on-file-which.patch b/patches/ntdll-FileDispositionInformation/0005-server-Do-not-allow-to-set-disposition-on-file-which.patch index 240d892d..635ca11a 100644 --- a/patches/ntdll-FileDispositionInformation/0005-server-Do-not-allow-to-set-disposition-on-file-which.patch +++ b/patches/ntdll-FileDispositionInformation/0005-server-Do-not-allow-to-set-disposition-on-file-which.patch @@ -1,4 +1,4 @@ -From a9ec2efaf7e9e8eb0440052176e79f71b615bcc8 Mon Sep 17 00:00:00 2001 +From 2b11498b6880f1bf7c0675e2df234626b4f8d69e Mon Sep 17 00:00:00 2001 From: Qian Hong Date: Fri, 17 Apr 2015 18:39:59 +0800 Subject: server: Do not allow to set disposition on file which has a file @@ -10,10 +10,10 @@ Subject: server: Do not allow to set disposition on file which has a file 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index 89f70de..b285157 100644 +index 4bc4925..7165776 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c -@@ -1633,7 +1633,6 @@ static void test_file_disposition_information(void) +@@ -1649,7 +1649,6 @@ static void test_file_disposition_information(void) 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 89f70de..b285157 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; -@@ -1667,7 +1666,6 @@ static void test_file_disposition_information(void) +@@ -1683,7 +1682,6 @@ static void test_file_disposition_information(void) CloseHandle( mapping ); fdi.DoDeleteFile = TRUE; res = pNtSetInformationFile( handle, &io, &fdi, sizeof fdi, FileDispositionInformation ); @@ -30,35 +30,35 @@ index 89f70de..b285157 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 d11d98c..553d840 100644 +index 0bac57d..f93093d 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -1946,6 +1946,7 @@ unsigned int get_fd_options( struct fd *fd ) - void set_fd_disposition( struct fd *fd, int unlink ) +@@ -2218,6 +2218,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; + struct list *ptr; - if (fd->unix_fd == -1) + if (!fd->inode) { -@@ -1973,6 +1974,17 @@ void set_fd_disposition( struct fd *fd, int unlink ) +@@ -2251,6 +2252,17 @@ static void set_fd_disposition( struct fd *fd, int unlink ) return; } ++ /* can't unlink files which are mapped to memory */ + LIST_FOR_EACH( ptr, &fd->inode->open ) + { + struct fd *fd_ptr = LIST_ENTRY( ptr, struct fd, inode_entry ); + if (fd_ptr != fd && fd_ptr->access & FILE_MAPPING_ACCESS) + { -+ /* can't unlink files which are mapped to memory */ + set_error( STATUS_CANNOT_DELETE ); + return; + } + } + - if (unlink) - fd->closed->unlink = 1; - else if (!(fd->options & FILE_DELETE_ON_CLOSE)) + fd->closed->unlink = unlink || (fd->options & FILE_DELETE_ON_CLOSE); + } + -- -2.4.2 +2.5.0 diff --git a/patches/ntdll-FileDispositionInformation/0009-ntdll-Implement-FileRenameInformation-support.patch b/patches/ntdll-FileDispositionInformation/0009-ntdll-Implement-FileRenameInformation-support.patch index 64d22658..61ed95ee 100644 --- a/patches/ntdll-FileDispositionInformation/0009-ntdll-Implement-FileRenameInformation-support.patch +++ b/patches/ntdll-FileDispositionInformation/0009-ntdll-Implement-FileRenameInformation-support.patch @@ -1,4 +1,4 @@ -From 526d905701f6d27f38cce701f36f6280f7c2c6cf Mon Sep 17 00:00:00 2001 +From 80f50af6703521e5a8ff7a3fa9bbb67abe52a210 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 2 Jun 2015 01:56:24 +0800 Subject: ntdll: Implement FileRenameInformation support. @@ -12,7 +12,7 @@ Based on a patch by Qian Hong. 4 files changed, 192 insertions(+), 37 deletions(-) diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 86063b6..6aa46f4 100644 +index 314c233..b865345 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -2781,6 +2781,48 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, @@ -65,7 +65,7 @@ index 86063b6..6aa46f4 100644 FIXME("Unsupported class (%d)\n", class); io->u.Status = STATUS_NOT_IMPLEMENTED; diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index a0aae0a..941cc0c 100644 +index d7be561..31a672d 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -1483,19 +1483,19 @@ static void test_file_rename_information(void) @@ -306,11 +306,11 @@ index a0aae0a..941cc0c 100644 pfni = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_NAME_INFORMATION) + MAX_PATH * sizeof(WCHAR) ); res = pNtQueryInformationFile( handle, &io, pfni, sizeof(FILE_NAME_INFORMATION) + MAX_PATH * sizeof(WCHAR), FileNameInformation ); diff --git a/server/fd.c b/server/fd.c -index 553d840..d4e5321 100644 +index f93093d..24e845c 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -1991,6 +1991,80 @@ void set_fd_disposition( struct fd *fd, int unlink ) - fd->closed->unlink = 0; +@@ -2266,6 +2266,80 @@ static void set_fd_disposition( struct fd *fd, int unlink ) + fd->closed->unlink = unlink || (fd->options & FILE_DELETE_ON_CLOSE); } +/* rename a file */ @@ -320,7 +320,7 @@ index 553d840..d4e5321 100644 + struct stat st; + char *name; + -+ if (!fd->unix_name) ++ if (!fd->inode || !fd->unix_name) + { + set_error( STATUS_OBJECT_TYPE_MISMATCH ); + return; @@ -387,10 +387,10 @@ index 553d840..d4e5321 100644 + free( name ); +} + - /* retrieve the unix fd for an object */ - int get_unix_fd( struct fd *fd ) + struct completion *fd_get_completion( struct fd *fd, apc_param_t *p_key ) { -@@ -2484,3 +2558,27 @@ DECL_HANDLER(add_fd_completion) + *p_key = fd->comp_key; +@@ -2472,3 +2546,27 @@ DECL_HANDLER(set_fd_info) release_object( fd ); } } @@ -419,13 +419,13 @@ index 553d840..d4e5321 100644 + if (root_fd) release_object( root_fd ); +} diff --git a/server/protocol.def b/server/protocol.def -index 800f73c..431d2b9 100644 +index ea9eb12..3f1cef5 100644 --- a/server/protocol.def +++ b/server/protocol.def -@@ -1206,6 +1206,15 @@ enum server_fd_type - int unlink; /* whether to unlink file on close */ +@@ -1233,6 +1233,15 @@ enum server_fd_type @END + + +/* Rename a file */ +@REQ(rename_file) @@ -439,5 +439,5 @@ index 800f73c..431d2b9 100644 @REQ(create_socket) unsigned int access; /* wanted access rights */ -- -2.4.2 +2.5.0 diff --git a/patches/ntdll-FileDispositionInformation/0013-server-Implement-support-for-FileLinkInformation-cla.patch b/patches/ntdll-FileDispositionInformation/0013-server-Implement-support-for-FileLinkInformation-cla.patch index d2762663..e3dfe13a 100644 --- a/patches/ntdll-FileDispositionInformation/0013-server-Implement-support-for-FileLinkInformation-cla.patch +++ b/patches/ntdll-FileDispositionInformation/0013-server-Implement-support-for-FileLinkInformation-cla.patch @@ -1,4 +1,4 @@ -From 0777c89085c995e4160750c12bdd0afd68eecafb Mon Sep 17 00:00:00 2001 +From 5555934a5d007286895f7ad2c7523899be9e3c9b Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 3 Jun 2015 17:04:23 +0200 Subject: server: Implement support for FileLinkInformation class in @@ -12,7 +12,7 @@ Subject: server: Implement support for FileLinkInformation class in 4 files changed, 105 insertions(+), 43 deletions(-) diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 6aa46f4..f5f2458 100644 +index b865345..049b323 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -2813,6 +2813,50 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, @@ -67,7 +67,7 @@ index 6aa46f4..f5f2458 100644 io->u.Status = wine_server_call( req ); } diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index c985a03..92613d5 100644 +index 5da5d0d..27ea58c 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -2183,12 +2183,12 @@ static void test_file_link_information(void) @@ -264,11 +264,11 @@ index c985a03..92613d5 100644 pfni = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_NAME_INFORMATION) + MAX_PATH * sizeof(WCHAR) ); res = pNtQueryInformationFile( handle, &io, pfni, sizeof(FILE_NAME_INFORMATION) + MAX_PATH * sizeof(WCHAR), FileNameInformation ); diff --git a/server/fd.c b/server/fd.c -index 4b0bf47..db299dd 100644 +index 757a06c..8c3c97e 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -1999,8 +1999,8 @@ void set_fd_disposition( struct fd *fd, int unlink ) - fd->closed->unlink = 0; +@@ -2274,8 +2274,8 @@ static void set_fd_disposition( struct fd *fd, int unlink ) + fd->closed->unlink = unlink || (fd->options & FILE_DELETE_ON_CLOSE); } -/* rename a file */ @@ -278,7 +278,7 @@ index 4b0bf47..db299dd 100644 { struct inode *inode; struct stat st; -@@ -2027,8 +2027,16 @@ static void rename_fd( struct fd *fd, struct fd *root, const char *nameptr, data +@@ -2302,8 +2302,16 @@ static void rename_fd( struct fd *fd, struct fd *root, const char *nameptr, data name = combined_name; } @@ -296,7 +296,7 @@ index 4b0bf47..db299dd 100644 if (!S_ISREG( st.st_mode )) { -@@ -2049,25 +2057,34 @@ static void rename_fd( struct fd *fd, struct fd *root, const char *nameptr, data +@@ -2324,25 +2332,34 @@ static void rename_fd( struct fd *fd, struct fd *root, const char *nameptr, data } } @@ -341,7 +341,7 @@ index 4b0bf47..db299dd 100644 failed: free( name ); -@@ -2567,7 +2584,7 @@ DECL_HANDLER(add_fd_completion) +@@ -2555,7 +2572,7 @@ DECL_HANDLER(set_fd_info) } } @@ -350,7 +350,7 @@ index 4b0bf47..db299dd 100644 DECL_HANDLER(rename_file) { struct fd *root_fd = NULL; -@@ -2584,7 +2601,7 @@ DECL_HANDLER(rename_file) +@@ -2572,7 +2589,7 @@ DECL_HANDLER(rename_file) if ((fd = get_handle_fd_obj( current->process, req->handle, 0 ))) { @@ -360,11 +360,11 @@ index 4b0bf47..db299dd 100644 } diff --git a/server/protocol.def b/server/protocol.def -index 431d2b9..c2c4221 100644 +index 3f1cef5..1c868c3 100644 --- a/server/protocol.def +++ b/server/protocol.def -@@ -1207,10 +1207,11 @@ enum server_fd_type - @END +@@ -1234,10 +1234,11 @@ enum server_fd_type + -/* Rename a file */ @@ -377,5 +377,5 @@ index 431d2b9..c2c4221 100644 @END -- -2.4.2 +2.5.0 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 89ff8b23..292ff089 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -2951,8 +2951,8 @@ fi # | * [#30399] Support for NtSetInformationFile class FileRenameInformation # | # | Modified files: -# | * dlls/kernel32/tests/file.c, dlls/ntdll/file.c, dlls/ntdll/tests/file.c, include/winternl.h, server/fd.c, server/file.c, -# | server/file.h, server/protocol.def +# | * dlls/kernel32/tests/file.c, dlls/ntdll/file.c, dlls/ntdll/tests/file.c, include/winternl.h, server/fd.c, +# | server/protocol.def # | if test "$enable_ntdll_FileDispositionInformation" -eq 1; then patch_apply ntdll-FileDispositionInformation/0001-server-Keep-a-pointer-to-parent-s-fd-unix_name-in-th.patch @@ -2970,7 +2970,7 @@ if test "$enable_ntdll_FileDispositionInformation" -eq 1; then patch_apply ntdll-FileDispositionInformation/0013-server-Implement-support-for-FileLinkInformation-cla.patch ( echo '+ { "Dmitry Timoshkov", "server: Keep a pointer to parent'\''s fd unix_name in the closed_fd structure.", 1 },'; - echo '+ { "Dmitry Timoshkov", "server: Add support for setting file disposition information.", 1 },'; + echo '+ { "Sebastian Lackner", "server: Add support for setting file disposition information.", 1 },'; echo '+ { "Erich E. Hoover", "server: Do not permit FileDispositionInformation to delete a file without write access.", 1 },'; echo '+ { "Qian Hong", "ntdll/tests: Added tests to set disposition on file which is mapped to memory.", 1 },'; echo '+ { "Qian Hong", "server: Do not allow to set disposition on file which has a file mapping.", 1 },';