From 94d730d951e3a113465853a3af968806550b817d Mon Sep 17 00:00:00 2001 From: xy0 Date: Mon, 21 Mar 2022 16:22:15 +0800 Subject: [PATCH] two overrun bug in ev.c & easy_mem_slab.c --- deps/easy/src/io/ev.c | 4 ++-- deps/easy/src/memory/easy_mem_slab.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/deps/easy/src/io/ev.c b/deps/easy/src/io/ev.c index f07948cd25..888cf273cd 100644 --- a/deps/easy/src/io/ev.c +++ b/deps/easy/src/io/ev.c @@ -1274,8 +1274,8 @@ EV_CPP(extern "C" { #endif WL head; } ANSIG; - - static ANSIG signals [EV_NSIG - 1]; + //whitescan for safety hole check + static ANSIG signals [EV_NSIG]; /*****************************************************************************/ diff --git a/deps/easy/src/memory/easy_mem_slab.c b/deps/easy/src/memory/easy_mem_slab.c index b84a4e52a5..5a55c102d7 100644 --- a/deps/easy/src/memory/easy_mem_slab.c +++ b/deps/easy/src/memory/easy_mem_slab.c @@ -278,8 +278,9 @@ static void* easy_mem_cache_grow(easy_mem_cache_t* cache) for (i = 0; i < cache->num; i++) { slab->next_pos[i] = i + 1; } - - slab->next_pos[i - 1] = EASY_MEM_POS_END; + // for static safty hole check, i is uint32_t + // when i-1,i=0->0-1=unsigned(-1),convert -1 to unsigned as result may overflow + if(i>0) slab->next_pos[i - 1] = EASY_MEM_POS_END; cache->free_objects += cache->num; obj = easy_mem_slab_get_obj(cache, slab); -- GitLab