mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-03-24 10:35:12 +00:00
Reduce code-size of mbedtls_asn1_get_sequence_of()
Reduce nesting of branches and remove unnecessary check at the end of the routine.
This commit is contained in:
parent
b5419867cd
commit
f226998fa2
|
@ -251,7 +251,7 @@ int mbedtls_asn1_get_sequence_of( unsigned char **p,
|
||||||
if( *p + len != end )
|
if( *p + len != end )
|
||||||
return( MBEDTLS_ERR_ASN1_LENGTH_MISMATCH );
|
return( MBEDTLS_ERR_ASN1_LENGTH_MISMATCH );
|
||||||
|
|
||||||
while( *p < end )
|
while( 1 )
|
||||||
{
|
{
|
||||||
buf = &(cur->buf);
|
buf = &(cur->buf);
|
||||||
buf->tag = **p;
|
buf->tag = **p;
|
||||||
|
@ -262,25 +262,20 @@ int mbedtls_asn1_get_sequence_of( unsigned char **p,
|
||||||
buf->p = *p;
|
buf->p = *p;
|
||||||
*p += buf->len;
|
*p += buf->len;
|
||||||
|
|
||||||
/* Allocate and assign next pointer */
|
if( *p == end )
|
||||||
if( *p < end )
|
|
||||||
{
|
{
|
||||||
cur->next = (mbedtls_asn1_sequence*)mbedtls_calloc( 1,
|
cur->next = NULL;
|
||||||
sizeof( mbedtls_asn1_sequence ) );
|
break;
|
||||||
|
|
||||||
if( cur->next == NULL )
|
|
||||||
return( MBEDTLS_ERR_ASN1_ALLOC_FAILED );
|
|
||||||
|
|
||||||
cur = cur->next;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cur->next = (mbedtls_asn1_sequence*)mbedtls_calloc( 1,
|
||||||
|
sizeof( mbedtls_asn1_sequence ) );
|
||||||
|
if( cur->next == NULL )
|
||||||
|
return( MBEDTLS_ERR_ASN1_ALLOC_FAILED );
|
||||||
|
|
||||||
|
cur = cur->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set final sequence entry's next pointer to NULL */
|
|
||||||
cur->next = NULL;
|
|
||||||
|
|
||||||
if( *p != end )
|
|
||||||
return( MBEDTLS_ERR_ASN1_LENGTH_MISMATCH );
|
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue