diff --git a/libpurgeablemem/common/src/ux_page_table_c.c b/libpurgeablemem/common/src/ux_page_table_c.c index 7dd5e4cbcdd173010dfce01f0007a45b21c0ad25..abde6f9c2f7ea320470ea1939815099e8c6eb713 100644 --- a/libpurgeablemem/common/src/ux_page_table_c.c +++ b/libpurgeablemem/common/src/ux_page_table_c.c @@ -262,11 +262,11 @@ static void UxpteAdd(uxpte_t *pte, size_t incNum) uxpte_t old = 0; uxpte_t newVal = 0; do { + old = UxpteLoad(pte); if (old + incNum < old || old + incNum < incNum) { break; } newVal = old + incNum; - old = UxpteLoad(pte); if (ULONG_MAX - old < incNum) { return; }