Add a return from pk_get_ueccpubkey if uecc_public_key_read_binary fails
Signed-off-by: Andrzej Kurek <andrzej.kurek@arm.com>
diff --git a/library/pkparse.c b/library/pkparse.c
index 688082b..411fbaa 100644
--- a/library/pkparse.c
+++ b/library/pkparse.c
@@ -573,8 +573,10 @@
mbedtls_uecc_keypair *uecc_keypair = (mbedtls_uecc_keypair *) pk_context;
int ret;
- ret = uecc_public_key_read_binary( uecc_keypair,
- (const unsigned char *) *p, end - *p );
+ if( ( ret = uecc_public_key_read_binary( uecc_keypair,
+ (const unsigned char *) *p, end - *p ) )
+ != 0 )
+ return ret;
/*
* We know uecc_public_key_read_binary consumed all bytes or failed
@@ -1062,7 +1064,7 @@
size_t keylen )
{
int ret;
- int version, pubkey_done;
+ int version, pubkey_done = 0;
size_t len;
mbedtls_asn1_buf params;
unsigned char *p = (unsigned char *) key;
@@ -1104,7 +1106,6 @@
p += len;
- pubkey_done = 0;
if( p != end )
{
/*