From 65f50286132dbdcde9f90b2a8b2d6a22eb0f9885 Mon Sep 17 00:00:00 2001 From: Huoyanlifusu Date: Mon, 2 Nov 2026 11:30:00 +0800 Subject: [PATCH] [drivers][virtio] Fix RPMsg probe error handling and NS memory leaks --- components/drivers/virtio/virtio-rpmsg.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/components/drivers/virtio/virtio-rpmsg.c b/components/drivers/virtio/virtio-rpmsg.c index bc7cbc21f2ce..ecf198012b09 100755 --- a/components/drivers/virtio/virtio-rpmsg.c +++ b/components/drivers/virtio/virtio-rpmsg.c @@ -399,6 +399,7 @@ static rt_err_t virtio_rpmsg_probe(struct rt_virtio_device *vdev) if (!vrpmsg->ns) { + err = -RT_ENOMEM; goto _fail_ns; } @@ -415,6 +416,10 @@ static rt_err_t virtio_rpmsg_probe(struct rt_virtio_device *vdev) return RT_EOK; _fail_ns: + if (vrpmsg->ns) + { + rt_free(vrpmsg->ns); + } rt_bus_remove_device(&vrpmsg->parent.parent); _fail: @@ -433,6 +438,7 @@ static rt_err_t virtio_rpmsg_remove(struct rt_virtio_device *vdev) if (vrpmsg->ns) { rt_bus_remove_device(&vrpmsg->ns->parent); + rt_free(vrpmsg->ns); } virtio_rpmsg_vq_finit(vrpmsg);