From b7e5f31e2a7459de34fbd6c3550b1ad10d8d679f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 27 May 2024 10:08:34 +0300 Subject: [PATCH 1/7] Replace final sprintf() with snprintf() in psa_ff_server.c Signed-off-by: Tom Cosgrove --- tests/psa-client-server/psasim/src/psa_ff_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/psa-client-server/psasim/src/psa_ff_server.c b/tests/psa-client-server/psasim/src/psa_ff_server.c index ea797d8ced..7c72ee7022 100644 --- a/tests/psa-client-server/psasim/src/psa_ff_server.c +++ b/tests/psa-client-server/psasim/src/psa_ff_server.c @@ -638,7 +638,7 @@ void __init_psasim(const char **array, if (strncmp(array[i], "", 1) != 0) { INFO("Setting up %s", array[i]); memset(queue_path, 0, sizeof(queue_path)); - sprintf(queue_path, "%s%s", TMP_FILE_BASE_PATH, array[i]); + snprintf(queue_path, sizeof(queue_path), "%s%s", TMP_FILE_BASE_PATH, array[i]); /* Create file if doesn't exist */ fp = fopen(queue_path, "ab+"); From 0a57a253cc9d3551bfd6300954cb1340f79a2911 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 27 May 2024 19:29:16 +0300 Subject: [PATCH 2/7] Fix psa_ff_server.c to calculate the amount of data from client correctly Signed-off-by: Tom Cosgrove --- tests/psa-client-server/psasim/src/psa_ff_server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/psa-client-server/psasim/src/psa_ff_server.c b/tests/psa-client-server/psasim/src/psa_ff_server.c index 7c72ee7022..9a457f469e 100644 --- a/tests/psa-client-server/psasim/src/psa_ff_server.c +++ b/tests/psa-client-server/psasim/src/psa_ff_server.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -426,7 +427,7 @@ size_t psa_read(psa_handle_t msg_handle, uint32_t invec_idx, assert(idx >= 0); len = msgrcv(connections[idx].client_to_server_q, &msg, sizeof(struct message_text), 0, 0); - len = (len - sizeof(msg.message_text.qid)); + len = (len - offsetof(struct message_text, buf)); if (len < 0) { FATAL("Internal error: failed to dispatch read request to the client"); From bdc4c2d750f21a581bab9a10b92d1f2db3946748 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 27 May 2024 23:55:43 +0300 Subject: [PATCH 3/7] Fix PSA sim test awk script by removing extra $ Signed-off-by: Tom Cosgrove --- tests/psa-client-server/psasim/test/run_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/psa-client-server/psasim/test/run_test.sh b/tests/psa-client-server/psasim/test/run_test.sh index 6a5605ff5a..06bcc93a82 100755 --- a/tests/psa-client-server/psasim/test/run_test.sh +++ b/tests/psa-client-server/psasim/test/run_test.sh @@ -17,7 +17,7 @@ function clean_run() { rm -f psa_notify_* pkill psa_partition || true pkill psa_client || true - ipcs | grep q | awk '{ printf " -q " $$2 }' | xargs ipcrm > /dev/null 2>&1 || true + ipcs | grep q | awk '{ printf " -q " $2 }' | xargs ipcrm > /dev/null 2>&1 || true } # The server creates some local files when it starts up so we can wait for this From f69445ccaf4ad4fb1ce31945878074d8f3def4bc Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 28 May 2024 14:01:04 +0300 Subject: [PATCH 4/7] Fix sending a response of more than 184 bytes in psa_ff_server.c:psa_write() Signed-off-by: Tom Cosgrove --- tests/psa-client-server/psasim/src/psa_ff_server.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/psa-client-server/psasim/src/psa_ff_server.c b/tests/psa-client-server/psasim/src/psa_ff_server.c index 9a457f469e..75a8af5e74 100644 --- a/tests/psa-client-server/psasim/src/psa_ff_server.c +++ b/tests/psa-client-server/psasim/src/psa_ff_server.c @@ -479,9 +479,9 @@ void psa_write(psa_handle_t msg_handle, uint32_t outvec_idx, sending = MAX_FRAGMENT_SIZE - (sizeof(size_t) * 2); } - INFO("Server: sending %lu bytes to client", sending); + INFO("Server: sending %lu bytes to client, sofar = %lu", sending, (long)sofar); - send_msg(msg_handle, WRITE_REQUEST, outvec_idx, sending, buffer, sending); + send_msg(msg_handle, WRITE_REQUEST, outvec_idx, sending, buffer + sofar, sending); idx = find_connection(message_client[msg_handle]); assert(idx >= 0); @@ -490,7 +490,7 @@ void psa_write(psa_handle_t msg_handle, uint32_t outvec_idx, if (len < 1) { FATAL("Client didn't give me a full response"); } - sofar = sofar + len; + sofar = sofar + sending; } /* Update the seek count */ From 9919543f5c824d08983d60e9d3fd6d39493a90cc Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 28 May 2024 14:07:10 +0300 Subject: [PATCH 5/7] Only print PSA crypto sim server messages when DEBUG defined Signed-off-by: Tom Cosgrove --- tests/psa-client-server/psasim/src/server.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/psa-client-server/psasim/src/server.c b/tests/psa-client-server/psasim/src/server.c index 630bd7392c..21b65c709e 100644 --- a/tests/psa-client-server/psasim/src/server.c +++ b/tests/psa-client-server/psasim/src/server.c @@ -19,8 +19,12 @@ #include "mbedtls/version.h" #include "psa/crypto.h" +#ifdef DEBUG #define SERVER_PRINT(fmt, ...) \ PRINT("Server: " fmt, ##__VA_ARGS__) +#else +#define SERVER_PRINT(...) +#endif #define BUF_SIZE 25 From 38f6c8672418a0896a53d05560ee0dbfcef63a41 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 28 May 2024 14:15:16 +0300 Subject: [PATCH 6/7] Remove unnecessary blank lines at top of functions in psa_ff_server.c Signed-off-by: Tom Cosgrove --- tests/psa-client-server/psasim/src/psa_ff_server.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/psa-client-server/psasim/src/psa_ff_server.c b/tests/psa-client-server/psasim/src/psa_ff_server.c index 75a8af5e74..16e6058f3b 100644 --- a/tests/psa-client-server/psasim/src/psa_ff_server.c +++ b/tests/psa-client-server/psasim/src/psa_ff_server.c @@ -455,7 +455,6 @@ size_t psa_read(psa_handle_t msg_handle, uint32_t invec_idx, void psa_write(psa_handle_t msg_handle, uint32_t outvec_idx, const void *buffer, size_t num_bytes) { - size_t sofar = 0; struct message msg = { 0 }; int idx; @@ -499,7 +498,6 @@ void psa_write(psa_handle_t msg_handle, uint32_t outvec_idx, size_t psa_skip(psa_handle_t msg_handle, uint32_t invec_idx, size_t num_bytes) { - is_valid_msg_handle(msg_handle); is_call_msg(msg_handle); @@ -512,7 +510,6 @@ size_t psa_skip(psa_handle_t msg_handle, uint32_t invec_idx, size_t num_bytes) static void destroy_temporary_queue(int myqid) { - if (msgctl(myqid, IPC_RMID, NULL) != 0) { INFO("ERROR: Failed to delete msg queue %d", myqid); } @@ -614,7 +611,6 @@ void __init_psasim(const char **array, const uint32_t versions[32], const int strict_policy_array[32]) { - static uint8_t library_initialised = 0; key_t key; int qid; From 92024566fb8741b5fc298b160bb3555874168959 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 29 May 2024 09:58:56 +0100 Subject: [PATCH 7/7] Fix code style in psa_ff_server.c Signed-off-by: Tom Cosgrove --- tests/psa-client-server/psasim/src/psa_ff_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/psa-client-server/psasim/src/psa_ff_server.c b/tests/psa-client-server/psasim/src/psa_ff_server.c index 16e6058f3b..219722ad61 100644 --- a/tests/psa-client-server/psasim/src/psa_ff_server.c +++ b/tests/psa-client-server/psasim/src/psa_ff_server.c @@ -478,7 +478,7 @@ void psa_write(psa_handle_t msg_handle, uint32_t outvec_idx, sending = MAX_FRAGMENT_SIZE - (sizeof(size_t) * 2); } - INFO("Server: sending %lu bytes to client, sofar = %lu", sending, (long)sofar); + INFO("Server: sending %lu bytes to client, sofar = %lu", sending, (long) sofar); send_msg(msg_handle, WRITE_REQUEST, outvec_idx, sending, buffer + sofar, sending);