st/nine: Fix reading invalid pointer

Apparently it is incorrect to use the pointer in
LIST_FOR_EACH_ENTRY like I used to.
Found with asan.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10160>
This commit is contained in:
Axel Davy
2021-03-28 18:30:40 +02:00
committed by Marge Bot
parent 2146494d08
commit 68024fc0cc
@@ -367,12 +367,13 @@ static void move_region_ordered(struct list_head *tail, struct nine_memfd_file_r
static void move_region_ordered_merge(struct nine_allocator *allocator, struct list_head *tail, struct nine_memfd_file_region *region)
{
struct nine_memfd_file_region *cur_region = NULL, *prev_region = NULL;
struct nine_memfd_file_region *p, *cur_region = NULL, *prev_region = NULL;
/* Remove from previous list (if any) */
list_delinit(&region->list);
LIST_FOR_EACH_ENTRY(cur_region, tail, list) {
LIST_FOR_EACH_ENTRY(p, tail, list) {
cur_region = p;
if (cur_region->offset > region->offset)
break;
prev_region = cur_region;