Remove largely useless bit of test log to silence GCC 12

GCC 12 emits a warning because it thinks `buffer1` is used after having been
freed. The code is correct C because we're only using the value of
`(uintptr_t)buffer1`, not `buffer1`. However, we aren't using the value for
anything useful: it doesn't really matter if an alloc-free-alloc sequence
returns the same address twice. So don't print that bit of information, and
this way we don't need to save the old address.

Fixes #5974.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2022-06-25 14:29:23 +02:00
parent 93a7f7d7f8
commit 0ff241a1ea
2 changed files with 3 additions and 5 deletions

View File

@ -0,0 +1,2 @@
Bugfix
* Silence a warning from GCC 12 in the selftest program. Fixes #5974.

View File

@ -84,7 +84,6 @@ static int calloc_self_test( int verbose )
void *empty2 = mbedtls_calloc( 0, 1 );
void *buffer1 = mbedtls_calloc( 1, 1 );
void *buffer2 = mbedtls_calloc( 1, 1 );
uintptr_t old_buffer1;
if( empty1 == NULL && empty2 == NULL )
{
@ -126,7 +125,6 @@ static int calloc_self_test( int verbose )
mbedtls_printf( " CALLOC(1): passed\n" );
}
old_buffer1 = (uintptr_t) buffer1;
mbedtls_free( buffer1 );
buffer1 = mbedtls_calloc( 1, 1 );
if( buffer1 == NULL )
@ -138,9 +136,7 @@ static int calloc_self_test( int verbose )
else
{
if( verbose )
mbedtls_printf( " CALLOC(1 again): passed (%s address)\n",
(uintptr_t) old_buffer1 == (uintptr_t) buffer1 ?
"same" : "different" );
mbedtls_printf( " CALLOC(1 again): passed\n" );
}
if( verbose )