diff --git a/libpurgeablemem/common/src/ux_page_table_c.c b/libpurgeablemem/common/src/ux_page_table_c.c index 67ad9ae429faf38bddb72441da49958aa663deae..8fe95defac574dfb0d28df8b69843bdeebf3bc34 100644 --- a/libpurgeablemem/common/src/ux_page_table_c.c +++ b/libpurgeablemem/common/src/ux_page_table_c.c @@ -16,6 +16,7 @@ #include /* NULL */ #include /* mmap */ #include /* sched_yield() */ +#include #include "hilog/log_c.h" #include "pm_util.h" @@ -261,6 +262,9 @@ static void UxpteAdd(uxpte_t *pte, size_t incNum) uxpte_t old; do { old = UxpteLoad(pte); + if (ULONG_MAX - old < incNum) { + return; + } if (IsUxpteUnderReclaim(old)) { sched_yield(); continue;