[LTP] [PATCH v2] overcommit_memory: Fix integer overflow and 32-bit limits
    Dan Carpenter 
    dan.carpenter@linaro.org
       
    Wed Oct 15 17:00:10 CEST 2025
    
    
  
On Wed, Oct 15, 2025 at 04:42:47PM +0200, Petr Vorel wrote:
> > The overcommit test uses sum_total, the sum (memory and swap) to test
> > the overcommit settings.
> 
> > This fixes two problems on 32-bit systems. The first is seen with a
> > integer overflow can occur when calculating sum_total * 2, if the
> > sum_total is larger than 2GB. The second is limited virtual address
> 
> You still mention GB ...
> 
Yep.  It is GB.
> > space (2-3GB) means the test can fail from address space exhaustion
> > before overcommit has been tested.
> 
> > Now the test runs correctly on low-memory 32-bit systems while avoiding
> > both the overflow bug and virtual address space issues.
> 
> > Signed-off-by: Ben Copeland <ben.copeland@linaro.org>
> > Acked-by: Arnd Bergmann <arnd@arndb.de>
> > Reviewed-by: Petr Vorel <pvorel@suse.cz>
> > ---
> >  .../kernel/mem/tunable/overcommit_memory.c    | 33 +++++++++++++++----
> >  1 file changed, 27 insertions(+), 6 deletions(-)
> 
> > diff --git a/testcases/kernel/mem/tunable/overcommit_memory.c b/testcases/kernel/mem/tunable/overcommit_memory.c
> > index 9b2cb479d..7ff5a98d0 100644
> > --- a/testcases/kernel/mem/tunable/overcommit_memory.c
> > +++ b/testcases/kernel/mem/tunable/overcommit_memory.c
> > @@ -131,24 +131,45 @@ static void overcommit_memory_test(void)
> >  	TST_SYS_CONF_LONG_SET(OVERCOMMIT_MEMORY, 2, 1);
> 
> >  	update_mem_commit();
> > -	alloc_and_check(commit_left * 2, EXPECT_FAIL);
> > -	alloc_and_check(commit_limit + total_batch_size, EXPECT_FAIL);
> > +	/* Skip tests that would overflow or exceed 32-bit address space */
> > +	if (tst_kernel_bits() == 64 || (unsigned long)commit_left <= TST_GB / TST_KB) {
> 
> ... but TST_GB / TST_KB is actually MB (you could use TST_MB).
> 
The sizes in this test are measured in KB, so it's 1GB but measured in
terms of KB not bytes.  Using TST_MB would work mathematically but it's
misleading.
regards,
dan carpenter
    
    
More information about the ltp
mailing list