From 34e383deeb978738c8ced6cabc92615159191b93 Mon Sep 17 00:00:00 2001 From: Kirill Artemev Date: Sat, 26 Oct 2024 23:36:15 +0500 Subject: [PATCH] ntsync5: fix crash wineserver (#1298) Signed-off-by: Kirill Artemev --- .../misc/fastsync/ntsync5-mainline.patch | 16 +++++++ .../misc/fastsync/ntsync5-protonify.patch | 16 +++++++ .../misc/fastsync/ntsync5-staging.patch | 42 +++++++++++++++++++ 3 files changed, 74 insertions(+) diff --git a/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-mainline.patch b/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-mainline.patch index 96ba2d2f6..97ff64516 100644 --- a/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-mainline.patch +++ b/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-mainline.patch @@ -3309,6 +3309,22 @@ diff --git a/server/object.c b/server/object.c index 89e541f..6c6568e 100644 --- a/server/object.c +++ b/server/object.c +@@ -120,6 +120,7 @@ static const struct object_ops apc_reserve_ops = + default_unlink_name, /* unlink_name */ + no_open_file, /* open_file */ + no_kernel_obj_list, /* get_kernel_obj_list */ ++ no_get_fast_sync, + no_close_handle, /* close_handle */ + no_destroy /* destroy */ + }; +@@ -144,6 +145,7 @@ static const struct object_ops completion_reserve_ops = + default_unlink_name, /* unlink_name */ + no_open_file, /* open_file */ + no_kernel_obj_list, /* get_kernel_obj_list */ ++ no_get_fast_sync, + no_close_handle, /* close_handle */ + no_destroy /* destroy */ + }; @@ -538,6 +538,12 @@ struct fd *no_get_fd( struct object *obj ) return NULL; } diff --git a/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-protonify.patch b/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-protonify.patch index 96ba2d2f6..97ff64516 100644 --- a/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-protonify.patch +++ b/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-protonify.patch @@ -3309,6 +3309,22 @@ diff --git a/server/object.c b/server/object.c index 89e541f..6c6568e 100644 --- a/server/object.c +++ b/server/object.c +@@ -120,6 +120,7 @@ static const struct object_ops apc_reserve_ops = + default_unlink_name, /* unlink_name */ + no_open_file, /* open_file */ + no_kernel_obj_list, /* get_kernel_obj_list */ ++ no_get_fast_sync, + no_close_handle, /* close_handle */ + no_destroy /* destroy */ + }; +@@ -144,6 +145,7 @@ static const struct object_ops completion_reserve_ops = + default_unlink_name, /* unlink_name */ + no_open_file, /* open_file */ + no_kernel_obj_list, /* get_kernel_obj_list */ ++ no_get_fast_sync, + no_close_handle, /* close_handle */ + no_destroy /* destroy */ + }; @@ -538,6 +538,12 @@ struct fd *no_get_fd( struct object *obj ) return NULL; } diff --git a/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-staging.patch b/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-staging.patch index 05b75e963..c0e48bf46 100644 --- a/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-staging.patch +++ b/wine-tkg-git/wine-tkg-patches/misc/fastsync/ntsync5-staging.patch @@ -6723,6 +6723,48 @@ diff --git a/server/object.c b/server/object.c index 29f1ea9..33fc18c 100644 --- a/server/object.c +++ b/server/object.c +@@ -120,19 +120,19 @@ static const struct object_ops apc_reserve_ops = + no_add_queue, /* add_queue */ + NULL, /* remove_queue */ + NULL, /* signaled */ +- NULL, /* get_esync_fd */ + no_satisfied, /* satisfied */ + no_signal, /* signal */ + no_get_fd, /* get_fd */ + default_map_access, /* map_access */ + default_get_sd, /* get_sd */ + default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ + no_lookup_name, /* lookup_name */ + directory_link_name, /* link_name */ + default_unlink_name, /* unlink_name */ + no_open_file, /* open_file */ + no_kernel_obj_list, /* get_kernel_obj_list */ ++ no_get_fast_sync, + no_close_handle, /* close_handle */ + no_destroy /* destroy */ + }; +@@ -144,19 +145,19 @@ static const struct object_ops completion_reserve_ops = + no_add_queue, /* add_queue */ + NULL, /* remove_queue */ + NULL, /* signaled */ +- NULL, /* get_esync_fd */ + no_satisfied, /* satisfied */ + no_signal, /* signal */ + no_get_fd, /* get_fd */ + default_map_access, /* map_access */ + default_get_sd, /* get_sd */ + default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ + no_lookup_name, /* lookup_name */ + directory_link_name, /* link_name */ + default_unlink_name, /* unlink_name */ + no_open_file, /* open_file */ + no_kernel_obj_list, /* get_kernel_obj_list */ ++ no_get_fast_sync, + no_close_handle, /* close_handle */ + no_destroy /* destroy */ + }; @@ -538,6 +538,12 @@ struct fd *no_get_fd( struct object *obj ) return NULL; }