aboutsummaryrefslogtreecommitdiff
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
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
-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);