From fd6b8dc67c139a454942582dc64c0e2786a031e7 Mon Sep 17 00:00:00 2001 From: Mikael Olsson Date: Wed, 10 May 2023 14:46:30 +0200 Subject: 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 --- kernel/ethosu_device.c | 7 +++++++ 1 file changed, 7 insertions(+) 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); -- cgit v1.2.1