mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 03:25:46 +01:00
Clarify initialization of T in mul_comb()
Exactly one of three ways will be used, so make that clear by using an if 1 else if 2 else 3 structure. While at it, don't initialize variables at declaration, just to make extra sure they're properly initialized afterwards in all code paths.
This commit is contained in:
parent
0b23f167ba
commit
11556e2846
@ -1885,7 +1885,7 @@ static unsigned char ecp_pick_window_size( const mbedtls_ecp_group *grp,
|
|||||||
*
|
*
|
||||||
* This function is mainly responsible for administrative work:
|
* This function is mainly responsible for administrative work:
|
||||||
* - managing the restart context if enabled
|
* - managing the restart context if enabled
|
||||||
* - managing the table of precomputed points (passed between the above two
|
* - managing the table of precomputed points (passed between the below two
|
||||||
* functions): allocation, computation, ownership tranfer, freeing.
|
* functions): allocation, computation, ownership tranfer, freeing.
|
||||||
*
|
*
|
||||||
* It delegates the actual arithmetic work to:
|
* It delegates the actual arithmetic work to:
|
||||||
@ -1900,10 +1900,10 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
mbedtls_ecp_restart_ctx *rs_ctx )
|
mbedtls_ecp_restart_ctx *rs_ctx )
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
unsigned char w, p_eq_g = 0, i;
|
unsigned char w, p_eq_g, i;
|
||||||
size_t d;
|
size_t d;
|
||||||
unsigned char T_size = 0, T_ok = 0;
|
unsigned char T_size, T_ok;
|
||||||
mbedtls_ecp_point *T = NULL;
|
mbedtls_ecp_point *T;
|
||||||
|
|
||||||
ECP_RS_ENTER( rsm );
|
ECP_RS_ENTER( rsm );
|
||||||
|
|
||||||
@ -1925,23 +1925,21 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
T = grp->T;
|
T = grp->T;
|
||||||
T_ok = 1;
|
T_ok = 1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
/* Pre-computed table: do we have one in progress? complete? */
|
/* Pre-computed table: do we have one in progress? complete? */
|
||||||
if( rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->T != NULL && T == NULL )
|
if( rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->T != NULL )
|
||||||
{
|
{
|
||||||
/* transfer ownership of T from rsm to local function */
|
/* transfer ownership of T from rsm to local function */
|
||||||
T = rs_ctx->rsm->T;
|
T = rs_ctx->rsm->T;
|
||||||
rs_ctx->rsm->T = NULL;
|
rs_ctx->rsm->T = NULL;
|
||||||
rs_ctx->rsm->T_size = 0;
|
rs_ctx->rsm->T_size = 0;
|
||||||
|
|
||||||
if( rs_ctx->rsm->state >= ecp_rsm_comb_core )
|
T_ok = rs_ctx->rsm->state >= ecp_rsm_comb_core;
|
||||||
T_ok = 1;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Allocate table if we didn't have any */
|
/* Allocate table if we didn't have any */
|
||||||
if( T == NULL )
|
|
||||||
{
|
{
|
||||||
T = mbedtls_calloc( T_size, sizeof( mbedtls_ecp_point ) );
|
T = mbedtls_calloc( T_size, sizeof( mbedtls_ecp_point ) );
|
||||||
if( T == NULL )
|
if( T == NULL )
|
||||||
@ -1952,6 +1950,8 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
|
|||||||
|
|
||||||
for( i = 0; i < T_size; i++ )
|
for( i = 0; i < T_size; i++ )
|
||||||
mbedtls_ecp_point_init( &T[i] );
|
mbedtls_ecp_point_init( &T[i] );
|
||||||
|
|
||||||
|
T_ok = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compute table (or finish computing it) if not done already */
|
/* Compute table (or finish computing it) if not done already */
|
||||||
|
Loading…
Reference in New Issue
Block a user