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
793cc934
Commit
793cc934
authored
Nov 09, 2022
by
Zebediah Figura
Committed by
Alexandre Julliard
Nov 23, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Avoid casting a struct to its first field.
parent
5741f94d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
4 additions
and
4 deletions
+4
-4
heap.c
dlls/ntdll/heap.c
+4
-4
No files found.
dlls/ntdll/heap.c
View file @
793cc934
...
...
@@ -1022,7 +1022,7 @@ static struct block *find_free_block( struct heap *heap, SIZE_T block_size, SUBH
while
((
ptr
=
list_next
(
&
heap
->
free_lists
[
0
].
entry
,
ptr
)))
{
entry
=
LIST_ENTRY
(
ptr
,
struct
entry
,
entry
);
block
=
(
struct
block
*
)
entry
;
block
=
&
entry
->
block
;
if
(
block_get_flags
(
block
)
==
BLOCK_FLAG_FREE_LINK
)
continue
;
if
(
block_get_size
(
block
)
>=
block_size
)
{
...
...
@@ -1062,7 +1062,7 @@ static struct block *find_free_block( struct heap *heap, SIZE_T block_size, SUBH
entry
=
first_block
(
*
subheap
);
list_remove
(
&
entry
->
entry
);
return
(
struct
block
*
)
entry
;
return
&
entry
->
block
;
}
...
...
@@ -1091,11 +1091,11 @@ static BOOL validate_free_block( const struct heap *heap, const SUBHEAP *subheap
err
=
"invalid block flags"
;
else
if
(
!
contains
(
base
,
subheap_size
(
subheap
),
block
,
block_get_size
(
block
)
))
err
=
"invalid block size"
;
else
if
(
!
is_valid_free_block
(
heap
,
(
next
=
(
struct
block
*
)
LIST_ENTRY
(
entry
->
entry
.
next
,
struct
entry
,
entry
)
)
))
else
if
(
!
is_valid_free_block
(
heap
,
(
next
=
&
LIST_ENTRY
(
entry
->
entry
.
next
,
struct
entry
,
entry
)
->
block
)
))
err
=
"invalid next free block pointer"
;
else
if
(
!
(
block_get_flags
(
next
)
&
BLOCK_FLAG_FREE
)
||
block_get_type
(
next
)
!=
BLOCK_TYPE_FREE
)
err
=
"invalid next free block header"
;
else
if
(
!
is_valid_free_block
(
heap
,
(
prev
=
(
struct
block
*
)
LIST_ENTRY
(
entry
->
entry
.
prev
,
struct
entry
,
entry
)
)
))
else
if
(
!
is_valid_free_block
(
heap
,
(
prev
=
&
LIST_ENTRY
(
entry
->
entry
.
prev
,
struct
entry
,
entry
)
->
block
)
))
err
=
"invalid previous free block pointer"
;
else
if
(
!
(
block_get_flags
(
prev
)
&
BLOCK_FLAG_FREE
)
||
block_get_type
(
prev
)
!=
BLOCK_TYPE_FREE
)
err
=
"invalid previous free block header"
;
...
...
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