Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
ab28825a
Commit
ab28825a
authored
Jan 22, 2024
by
Bernhard Übelacker
Committed by
Alexandre Julliard
Jan 24, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Fix structure layout in RtlQueryProcessDebugInformation for 64-bit.
This is to avoid crash in Process Explorer 17.05. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=56235
parent
976e715b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
5 deletions
+20
-5
debugbuffer.c
dlls/ntdll/debugbuffer.c
+2
-2
rtl.c
dlls/ntdll/tests/rtl.c
+15
-0
winternl.h
include/winternl.h
+3
-3
No files found.
dlls/ntdll/debugbuffer.c
View file @
ab28825a
...
@@ -77,8 +77,8 @@ static void dump_DEBUG_BUFFER(const DEBUG_BUFFER *iBuf)
...
@@ -77,8 +77,8 @@ static void dump_DEBUG_BUFFER(const DEBUG_BUFFER *iBuf)
TRACE
(
"EventPairHandle:%p
\n
"
,
iBuf
->
EventPairHandle
);
TRACE
(
"EventPairHandle:%p
\n
"
,
iBuf
->
EventPairHandle
);
TRACE
(
"RemoteThreadHandle:%p
\n
"
,
iBuf
->
RemoteThreadHandle
);
TRACE
(
"RemoteThreadHandle:%p
\n
"
,
iBuf
->
RemoteThreadHandle
);
TRACE
(
"InfoClassMask:%lx
\n
"
,
iBuf
->
InfoClassMask
);
TRACE
(
"InfoClassMask:%lx
\n
"
,
iBuf
->
InfoClassMask
);
TRACE
(
"SizeOfInfo:%
ld
\n
"
,
iBuf
->
SizeOfInfo
);
TRACE
(
"SizeOfInfo:%
Iu
\n
"
,
iBuf
->
SizeOfInfo
);
TRACE
(
"AllocatedSize:%
ld
\n
"
,
iBuf
->
AllocatedSize
);
TRACE
(
"AllocatedSize:%
Iu
\n
"
,
iBuf
->
AllocatedSize
);
TRACE
(
"SectionSize:%ld
\n
"
,
iBuf
->
SectionSize
);
TRACE
(
"SectionSize:%ld
\n
"
,
iBuf
->
SectionSize
);
TRACE
(
"BackTraceInfo:%p
\n
"
,
iBuf
->
BackTraceInformation
);
TRACE
(
"BackTraceInfo:%p
\n
"
,
iBuf
->
BackTraceInformation
);
dump_DEBUG_MODULE_INFORMATION
(
iBuf
->
ModuleInformation
);
dump_DEBUG_MODULE_INFORMATION
(
iBuf
->
ModuleInformation
);
...
...
dlls/ntdll/tests/rtl.c
View file @
ab28825a
...
@@ -157,6 +157,7 @@ static void test_RtlQueryProcessDebugInformation(void)
...
@@ -157,6 +157,7 @@ static void test_RtlQueryProcessDebugInformation(void)
DEBUG_BUFFER
*
buffer
;
DEBUG_BUFFER
*
buffer
;
NTSTATUS
status
;
NTSTATUS
status
;
/* PDI_HEAPS | PDI_HEAP_BLOCKS */
buffer
=
RtlCreateQueryDebugBuffer
(
0
,
0
);
buffer
=
RtlCreateQueryDebugBuffer
(
0
,
0
);
ok
(
buffer
!=
NULL
,
"RtlCreateQueryDebugBuffer returned NULL"
);
ok
(
buffer
!=
NULL
,
"RtlCreateQueryDebugBuffer returned NULL"
);
...
@@ -165,6 +166,20 @@ static void test_RtlQueryProcessDebugInformation(void)
...
@@ -165,6 +166,20 @@ static void test_RtlQueryProcessDebugInformation(void)
status
=
RtlQueryProcessDebugInformation
(
GetCurrentProcessId
(),
PDI_HEAPS
|
PDI_HEAP_BLOCKS
,
buffer
);
status
=
RtlQueryProcessDebugInformation
(
GetCurrentProcessId
(),
PDI_HEAPS
|
PDI_HEAP_BLOCKS
,
buffer
);
ok
(
!
status
,
"RtlQueryProcessDebugInformation returned %lx
\n
"
,
status
);
ok
(
!
status
,
"RtlQueryProcessDebugInformation returned %lx
\n
"
,
status
);
ok
(
buffer
->
InfoClassMask
==
(
PDI_HEAPS
|
PDI_HEAP_BLOCKS
),
"unexpected InfoClassMask %ld
\n
"
,
buffer
->
InfoClassMask
);
ok
(
buffer
->
HeapInformation
!=
NULL
,
"unexpected HeapInformation %p
\n
"
,
buffer
->
HeapInformation
);
status
=
RtlDestroyQueryDebugBuffer
(
buffer
);
ok
(
!
status
,
"RtlDestroyQueryDebugBuffer returned %lx
\n
"
,
status
);
/* PDI_MODULES */
buffer
=
RtlCreateQueryDebugBuffer
(
0
,
0
);
ok
(
buffer
!=
NULL
,
"RtlCreateQueryDebugBuffer returned NULL"
);
status
=
RtlQueryProcessDebugInformation
(
GetCurrentProcessId
(),
PDI_MODULES
,
buffer
);
ok
(
!
status
,
"RtlQueryProcessDebugInformation returned %lx
\n
"
,
status
);
ok
(
buffer
->
InfoClassMask
==
PDI_MODULES
,
"unexpected InfoClassMask %ld
\n
"
,
buffer
->
InfoClassMask
);
ok
(
buffer
->
ModuleInformation
!=
NULL
,
"unexpected ModuleInformation %p
\n
"
,
buffer
->
ModuleInformation
);
status
=
RtlDestroyQueryDebugBuffer
(
buffer
);
status
=
RtlDestroyQueryDebugBuffer
(
buffer
);
ok
(
!
status
,
"RtlDestroyQueryDebugBuffer returned %lx
\n
"
,
status
);
ok
(
!
status
,
"RtlDestroyQueryDebugBuffer returned %lx
\n
"
,
status
);
...
...
include/winternl.h
View file @
ab28825a
...
@@ -3040,11 +3040,11 @@ typedef struct _DEBUG_BUFFER {
...
@@ -3040,11 +3040,11 @@ typedef struct _DEBUG_BUFFER {
PVOID
RemoteSectionBase
;
PVOID
RemoteSectionBase
;
ULONG
SectionBaseDelta
;
ULONG
SectionBaseDelta
;
HANDLE
EventPairHandle
;
HANDLE
EventPairHandle
;
ULONG
Unknown
[
2
];
SIZE_T
Unknown
[
2
];
HANDLE
RemoteThreadHandle
;
HANDLE
RemoteThreadHandle
;
ULONG
InfoClassMask
;
ULONG
InfoClassMask
;
ULONG
SizeOfInfo
;
SIZE_T
SizeOfInfo
;
ULONG
AllocatedSize
;
SIZE_T
AllocatedSize
;
ULONG
SectionSize
;
ULONG
SectionSize
;
PVOID
ModuleInformation
;
PVOID
ModuleInformation
;
PVOID
BackTraceInformation
;
PVOID
BackTraceInformation
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment