Skip to content

Commit 739a60d

Browse files
nicola-mazzucato-armadeaarm
authored andcommitted
RSE: mhu_wrapper: Test for size in validate helper
Combine the common check for size, but do not silently reject size == 0, instead return an error. Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com> Change-Id: I85dd20fb54ea05f9ed1d53deda489a12053afdf9
1 parent 3ca8732 commit 739a60d

File tree

2 files changed

+8
-18
lines changed

2 files changed

+8
-18
lines changed

platform/ext/target/arm/rse/common/native_drivers/mhu_wrapper_v2_x.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,14 @@ clear_and_wait_for_signal(struct mhu_v2_x_dev_t *dev)
127127
* @brief For simplicity, require:
128128
* - the buffer address to be 4-byte aligned.
129129
* - the buffer size to be a multiple of 4.
130-
*
131130
*/
132131
static enum mhu_error_t validate_buffer_params(uintptr_t buf_addr,
133132
size_t buf_size)
134133
{
135-
if ((buf_addr == 0) || (!IS_ALIGNED(buf_addr, 4)) ||
136-
(!IS_ALIGNED(buf_size, 4))) {
134+
if ((buf_addr == 0) ||
135+
(!IS_ALIGNED(buf_addr, 4)) ||
136+
(!IS_ALIGNED(buf_size, 4)) ||
137+
(buf_size == 0)) {
137138
return MHU_ERR_VALIDATE_BUFFER_PARAMS_INVALID_ARG;
138139
}
139140

@@ -221,10 +222,6 @@ enum mhu_error_t mhu_send_data(void *mhu_sender_dev,
221222
assert(dev != NULL);
222223
assert(dev->base != (uintptr_t)NULL);
223224

224-
if (size == 0) {
225-
return MHU_ERR_NONE;
226-
}
227-
228225
mhu_err = validate_buffer_params((uintptr_t)send_buffer, size);
229226
if (mhu_err != MHU_ERR_NONE) {
230227
return mhu_err;
@@ -309,8 +306,6 @@ enum mhu_error_t mhu_receive_data(void *mhu_receiver_dev,
309306

310307
if (size == NULL) {
311308
return MHU_ERR_RECEIVE_DATA_INVALID_ARG;
312-
} else if (*size == 0) {
313-
return MHU_ERR_NONE;
314309
}
315310

316311
mhu_err = validate_buffer_params((uintptr_t)receive_buffer, *size);

platform/ext/target/arm/rse/common/native_drivers/mhu_wrapper_v3_x.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -157,13 +157,14 @@ enum mhu_error_t clear_and_wait_for_signal (
157157
* @brief For simplicity, require:
158158
* - the buffer address to be 4-byte aligned.
159159
* - the buffer size to be a multiple of 4.
160-
*
161160
*/
162161
static enum mhu_error_t validate_buffer_params(uintptr_t buf_addr,
163162
size_t buf_size)
164163
{
165-
if ((buf_addr == 0) || (!IS_ALIGNED(buf_addr, 4)) ||
166-
(!IS_ALIGNED(buf_size, 4))) {
164+
if ((buf_addr == 0) ||
165+
(!IS_ALIGNED(buf_addr, 4)) ||
166+
(!IS_ALIGNED(buf_size, 4)) ||
167+
(buf_size == 0)) {
167168
return MHU_ERR_VALIDATE_BUFFER_PARAMS_INVALID_ARG;
168169
}
169170

@@ -287,10 +288,6 @@ enum mhu_error_t mhu_send_data(void *mhu_sender_dev, const uint8_t *send_buffer,
287288
assert(dev != NULL);
288289
assert(dev->base != (uintptr_t)NULL);
289290

290-
if (size == 0) {
291-
return MHU_ERR_NONE;
292-
}
293-
294291
mhu_err = validate_buffer_params((uintptr_t)send_buffer, size);
295292
if (mhu_err != MHU_ERR_NONE) {
296293
return mhu_err;
@@ -377,8 +374,6 @@ enum mhu_error_t mhu_receive_data(void *mhu_receiver_dev,
377374

378375
if (size == NULL) {
379376
return MHU_ERR_RECEIVE_DATA_INVALID_ARG;
380-
} else if (*size == 0) {
381-
return MHU_ERR_NONE;
382377
}
383378

384379
mhu_err = validate_buffer_params((uintptr_t)receive_buffer, *size);

0 commit comments

Comments
 (0)