mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-01-28 18:32:56 +00:00
Do not read if output pointer is NULL
Skip reading if output pointer is NULL even if the length of the input buffer is 0. The memory sanitizer will mark this as an error. Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
This commit is contained in:
parent
6318468183
commit
bf9da1dfb1
@ -171,10 +171,12 @@ int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X,
|
||||
return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL );
|
||||
|
||||
if( X != NULL )
|
||||
{
|
||||
memset( X, 0, nx * ciL );
|
||||
|
||||
for( i = 0; i < buflen; i++ )
|
||||
X[i / ciL] |= ((mbedtls_mpi_uint) buf[i]) << ((i % ciL) << 3);
|
||||
for( i = 0; i < buflen; i++ )
|
||||
X[i / ciL] |= ((mbedtls_mpi_uint) buf[i]) << ((i % ciL) << 3);
|
||||
}
|
||||
|
||||
return( 0 );
|
||||
}
|
||||
@ -192,18 +194,20 @@ int mbedtls_mpi_core_read_be( mbedtls_mpi_uint *X,
|
||||
return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL );
|
||||
|
||||
if( X != NULL )
|
||||
{
|
||||
memset( X, 0, nx * ciL );
|
||||
|
||||
overhead = ( nx * ciL ) - buflen;
|
||||
overhead = ( nx * ciL ) - buflen;
|
||||
|
||||
/* Avoid calling `memcpy` with NULL source or destination argument,
|
||||
* even if buflen is 0. */
|
||||
if( buf != NULL )
|
||||
{
|
||||
Xp = (unsigned char*) X;
|
||||
memcpy( Xp + overhead, buf, buflen );
|
||||
/* Avoid calling `memcpy` with NULL source or destination argument,
|
||||
* even if buflen is 0. */
|
||||
if( buf != NULL && X != NULL )
|
||||
{
|
||||
Xp = (unsigned char*) X;
|
||||
memcpy( Xp + overhead, buf, buflen );
|
||||
|
||||
mbedtls_mpi_core_bigendian_to_host( X, nx );
|
||||
mbedtls_mpi_core_bigendian_to_host( X, nx );
|
||||
}
|
||||
}
|
||||
|
||||
return( 0 );
|
||||
|
Loading…
x
Reference in New Issue
Block a user