Fix potential stack underflow in mpi_read_file.
When provided with an empty line, mpi_read_file causes a numeric underflow resulting in a stack underflow. This commit fixes this and adds some documentation to mpi_read_file.
This commit is contained in:
parent
b65c2be5f1
commit
b2034b7785
3 changed files with 20 additions and 4 deletions
|
@ -616,11 +616,11 @@ int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin )
|
|||
if( slen == sizeof( s ) - 2 )
|
||||
return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL );
|
||||
|
||||
if( s[slen - 1] == '\n' ) { slen--; s[slen] = '\0'; }
|
||||
if( s[slen - 1] == '\r' ) { slen--; s[slen] = '\0'; }
|
||||
if( slen > 0 && s[slen - 1] == '\n' ) { slen--; s[slen] = '\0'; }
|
||||
if( slen > 0 && s[slen - 1] == '\r' ) { slen--; s[slen] = '\0'; }
|
||||
|
||||
p = s + slen;
|
||||
while( --p >= s )
|
||||
while( p-- > s )
|
||||
if( mpi_get_digit( &d, radix, *p ) != 0 )
|
||||
break;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue