From cf74e8191708a3362747d997e339e7c5b6cd5d96 Mon Sep 17 00:00:00 2001 From: "terry.rong" Date: Thu, 23 Nov 2023 15:23:40 +0800 Subject: [PATCH] fix(cache): fix use after free in lv_cache_invalidate_by_src (#4853) Signed-off-by: rongyichang --- src/misc/lv_cache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/misc/lv_cache.c b/src/misc/lv_cache.c index 1ebf1e918..8180d6f25 100644 --- a/src/misc/lv_cache.c +++ b/src/misc/lv_cache.c @@ -100,11 +100,13 @@ void lv_cache_invalidate(lv_cache_entry_t * entry) void lv_cache_invalidate_by_src(const void * src, lv_cache_src_type_t src_type) { + lv_cache_entry_t * next; LV_ASSERT(_cache_manager.locked); lv_cache_entry_t * entry = lv_cache_find_by_src(NULL, src, src_type); while(entry) { + next = lv_cache_find_by_src(entry, src, src_type); lv_cache_invalidate(entry); - entry = lv_cache_find_by_src(entry, src, src_type); + entry = next; } }