shell: fix a memory corruption coverity issue
Added a condition to check if the size of the copied
memory is a positive number.
Fixes #58700
Fixes #58703
Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@verkada.com>
diff --git a/subsys/shell/shell_log_backend.c b/subsys/shell/shell_log_backend.c
index 2a90478..38ee97c 100644
--- a/subsys/shell/shell_log_backend.c
+++ b/subsys/shell/shell_log_backend.c
@@ -143,6 +143,9 @@
uint8_t *src_data = (uint8_t *)msg + sizeof(struct mpsc_pbuf_hdr);
size_t hdr_wlen = DIV_ROUND_UP(sizeof(struct mpsc_pbuf_hdr),
sizeof(uint32_t));
+ if (wlen <= hdr_wlen) {
+ return false;
+ }
dst->hdr.data = msg->buf.hdr.data;
memcpy(dst_data, src_data, (wlen - hdr_wlen) * sizeof(uint32_t));