-- v2: win32u: Fix swapped security / root object attributes. server: Don't crash in d3dkmt_share_objects if attributes are invalid. server: Use the object runtime data size for the reply.
From: Rémi Bernon rbernon@codeweavers.com
--- server/d3dkmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/d3dkmt.c b/server/d3dkmt.c index c09db82ddaf..9c08429d283 100644 --- a/server/d3dkmt.c +++ b/server/d3dkmt.c @@ -421,7 +421,7 @@ DECL_HANDLER(d3dkmt_object_open) reply->handle = handle; reply->global = object->global; reply->runtime_size = object->runtime_size; - if (runtime_size) set_reply_data( object->runtime, runtime_size ); + if (runtime_size) set_reply_data( object->runtime, object->runtime_size ); }
release_object( object );
From: Rémi Bernon rbernon@codeweavers.com
--- server/d3dkmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/d3dkmt.c b/server/d3dkmt.c index 9c08429d283..57c0d111cf8 100644 --- a/server/d3dkmt.c +++ b/server/d3dkmt.c @@ -436,7 +436,7 @@ DECL_HANDLER(d3dkmt_share_objects) struct unicode_str name; struct object *root;
- objattr = get_req_object_attributes( &sd, &name, &root ); + if (!(objattr = get_req_object_attributes( &sd, &name, &root ))) return;
if (req->resource) {
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/vulkan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/win32u/vulkan.c b/dlls/win32u/vulkan.c index 877091cd590..441009f50e3 100644 --- a/dlls/win32u/vulkan.c +++ b/dlls/win32u/vulkan.c @@ -228,7 +228,7 @@ static HANDLE create_shared_resource_handle( D3DKMT_HANDLE local, const VkExport HANDLE shared;
if (info->name) init_shared_resource_path( info->name, &name ); - InitializeObjectAttributes( &attr, info->name ? &name : NULL, OBJ_CASE_INSENSITIVE, security, NULL ); + InitializeObjectAttributes( &attr, info->name ? &name : NULL, OBJ_CASE_INSENSITIVE, NULL, security );
if (!(status = NtGdiDdDDIShareObjects( 1, &local, &attr, info->dwAccess, &shared ))) return shared; WARN( "Failed to share resource %#x, status %#x\n", local, status ); @@ -1366,7 +1366,7 @@ static HANDLE create_shared_semaphore_handle( D3DKMT_HANDLE local, const VkExpor HANDLE shared;
if (info->name) init_shared_resource_path( info->name, &name ); - InitializeObjectAttributes( &attr, info->name ? &name : NULL, OBJ_CASE_INSENSITIVE, security, NULL ); + InitializeObjectAttributes( &attr, info->name ? &name : NULL, OBJ_CASE_INSENSITIVE, NULL, security );
if (!(status = NtGdiDdDDIShareObjects( 1, &local, &attr, info->dwAccess, &shared ))) return shared; WARN( "Failed to share resource %#x, status %#x\n", local, status );