aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Hall <julian.hall@arm.com>2021-07-28 09:46:09 +0100
committerGyorgy Szing <Gyorgy.Szing@arm.com>2021-10-06 00:48:46 +0200
commit524903e0667bae11647ff8d60f5336e7500a3386 (patch)
tree46171204c6cd435fef9ec71d71c4b762f66b1863
parentc2d78b5020491cbc3129bb440769c1d366d99edd (diff)
downloadtrusted-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.c6
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;
}