aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMikael Olsson <mikael.olsson@arm.com>2023-05-10 14:46:30 +0200
committerMikael Olsson <mikael.olsson@arm.com>2023-05-15 11:26:16 +0200
commitfd6b8dc67c139a454942582dc64c0e2786a031e7 (patch)
treef397eb82f47daa147b06f391acb406d0b135b1db /kernel
parent099d90cf81e0bf483f8ad02f0d61a4fcbbb64ba8 (diff)
downloadethos-u-linux-driver-stack-fd6b8dc67c139a454942582dc64c0e2786a031e7.tar.gz
Add rpmsg message magic check in kernel driver
The kernel driver will now verify the magic value in an incoming message's header before any further processing of the message is performed to avoid trying to handle an invalid message. Change-Id: I7ae1cac19a6fe4b78316decff4ca2147175ee07a
Diffstat (limited to 'kernel')
-rw-r--r--kernel/ethosu_device.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/ethosu_device.c b/kernel/ethosu_device.c
index 48aa0a5..002e934 100644
--- a/kernel/ethosu_device.c
+++ b/kernel/ethosu_device.c
@@ -74,6 +74,13 @@ static int ethosu_handle_rpmsg(struct rpmsg_device *rpdev,
int length = len - sizeof(rpmsg->header);
int ret;
+ if (unlikely(rpmsg->header.magic != ETHOSU_CORE_MSG_MAGIC)) {
+ dev_warn(dev, "Msg: Error invalid message magic. magic=0x%08x",
+ rpmsg->header.magic);
+
+ return -EBADMSG;
+ }
+
dev_info(dev,
"Msg: magic=0x%08x, type=%u, msg_id=%llu",
rpmsg->header.magic, rpmsg->header.type, rpmsg->header.msg_id);