]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity
authorZhipeng Lu <alexious@zju.edu.cn>
Thu, 1 Feb 2024 12:48:44 +0000 (20:48 +0800)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:17:02 +0000 (18:17 -0400)
[ Upstream commit 8f94b49a5b5d386c038e355bef6347298aabd211 ]

The entity->name (i.e. name) is allocated in v4l2_m2m_register_entity
but isn't freed in its following error-handling paths. This patch
adds such deallocation to prevent memleak of entity->name.

Fixes: be2fff656322 ("media: add helpers for memory-to-memory media controller")
Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/v4l2-core/v4l2-mem2mem.c

index 9e983176542be07d0ce0a974d0ddb68ac490ae9f..75517134a5e94586f2a05dd0b16aa2319ec45e8a 100644 (file)
@@ -1087,11 +1087,17 @@ static int v4l2_m2m_register_entity(struct media_device *mdev,
        entity->function = function;
 
        ret = media_entity_pads_init(entity, num_pads, pads);
-       if (ret)
+       if (ret) {
+               kfree(entity->name);
+               entity->name = NULL;
                return ret;
+       }
        ret = media_device_register_entity(mdev, entity);
-       if (ret)
+       if (ret) {
+               kfree(entity->name);
+               entity->name = NULL;
                return ret;
+       }
 
        return 0;
 }