diff options
author | Julian Hall <julian.hall@arm.com> | 2021-07-28 09:46:09 +0100 |
---|---|---|
committer | Gyorgy Szing <Gyorgy.Szing@arm.com> | 2021-10-06 00:48:46 +0200 |
commit | 524903e0667bae11647ff8d60f5336e7500a3386 (patch) | |
tree | 46171204c6cd435fef9ec71d71c4b762f66b1863 | |
parent | c2d78b5020491cbc3129bb440769c1d366d99edd (diff) | |
download | trusted-services-524903e0667bae11647ff8d60f5336e7500a3386.tar.gz |
Fix response length in AEAD proto serializer
The packed-c serializer for the AEAD crypto extension was setting
an incorrect response length in serialize_aead_finish_resp().
This commit fixes the returned length.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I15076ccbd450752ebb2d9b0820f53837edf74da7
-rw-r--r-- | components/service/crypto/provider/extension/aead/serializer/packed-c/packedc_aead_provider_serializer.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/components/service/crypto/provider/extension/aead/serializer/packed-c/packedc_aead_provider_serializer.c b/components/service/crypto/provider/extension/aead/serializer/packed-c/packedc_aead_provider_serializer.c index 9dfc0b9b9..6f00b3e3f 100644 --- a/components/service/crypto/provider/extension/aead/serializer/packed-c/packedc_aead_provider_serializer.c +++ b/components/service/crypto/provider/extension/aead/serializer/packed-c/packedc_aead_provider_serializer.c @@ -275,6 +275,8 @@ static rpc_status_t serialize_aead_finish_resp(struct call_param_buf *resp_buf, struct tlv_iterator resp_iter; int encoded_tlv_count = 0; + resp_buf->data_len = 0; + tlv_iterator_begin(&resp_iter, resp_buf->data, resp_buf->size); struct tlv_record out_record; @@ -284,7 +286,7 @@ static rpc_status_t serialize_aead_finish_resp(struct call_param_buf *resp_buf, if (tlv_encode(&resp_iter, &out_record)) { - resp_buf->data_len = tlv_required_space(out_record.length); + resp_buf->data_len += tlv_required_space(out_record.length); ++encoded_tlv_count; } @@ -294,7 +296,7 @@ static rpc_status_t serialize_aead_finish_resp(struct call_param_buf *resp_buf, if (tlv_encode(&resp_iter, &out_record)) { - resp_buf->data_len = tlv_required_space(out_record.length); + resp_buf->data_len += tlv_required_space(out_record.length); ++encoded_tlv_count; } |