Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9db28659 authored by Wenwen Wang's avatar Wenwen Wang Committed by Greg Kroah-Hartman
Browse files

media: dvb-core: fix a memory leak bug



[ Upstream commit fcd5ce4b3936242e6679875a4d3c3acfc8743e15 ]

In dvb_create_media_entity(), 'dvbdev->entity' is allocated through
kzalloc(). Then, 'dvbdev->pads' is allocated through kcalloc(). However, if
kcalloc() fails, the allocated 'dvbdev->entity' is not deallocated, leading
to a memory leak bug. To fix this issue, free 'dvbdev->entity' before
returning -ENOMEM.

Signed-off-by: default avatarWenwen Wang <wenwen@cs.uga.edu>
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent c18b0a3b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -314,9 +314,11 @@ static int dvb_create_media_entity(struct dvb_device *dvbdev,
	if (npads) {
		dvbdev->pads = kcalloc(npads, sizeof(*dvbdev->pads),
				       GFP_KERNEL);
		if (!dvbdev->pads)
		if (!dvbdev->pads) {
			kfree(dvbdev->entity);
			return -ENOMEM;
		}
	}

	switch (type) {
	case DVB_DEVICE_FRONTEND: