mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-12-23 18:25:35 +00:00
Fix uncaught error if fix_negative fails
fix_negative allocates memory for its result. The calling site didn't check the return value, so an out-of-memory error could lead to an incorrect calculation. Fix this. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
84697ca359
commit
7d6326dbf9
|
@ -1046,7 +1046,7 @@ static inline void sub32( uint32_t *dst, uint32_t src, signed char *carry )
|
||||||
STORE32; i++; \
|
STORE32; i++; \
|
||||||
cur = c > 0 ? c : 0; STORE32; \
|
cur = c > 0 ? c : 0; STORE32; \
|
||||||
cur = 0; while( ++i < MAX32 ) { STORE32; } \
|
cur = 0; while( ++i < MAX32 ) { STORE32; } \
|
||||||
if( c < 0 ) fix_negative( N, c, &C, bits );
|
if( c < 0 ) MBEDTLS_MPI_CHK( fix_negative( N, c, &C, bits ) );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the result is negative, we get it in the form
|
* If the result is negative, we get it in the form
|
||||||
|
|
Loading…
Reference in a new issue