media: dvb-core: fix a memory leak bug
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: Wenwen Wang <wenwen@cs.uga.edu> Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
b1da86fce4
commit
fcd5ce4b39
|
@ -339,8 +339,10 @@ static int dvb_create_media_entity(struct dvb_device *dvbdev,
|
||||||
if (npads) {
|
if (npads) {
|
||||||
dvbdev->pads = kcalloc(npads, sizeof(*dvbdev->pads),
|
dvbdev->pads = kcalloc(npads, sizeof(*dvbdev->pads),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!dvbdev->pads)
|
if (!dvbdev->pads) {
|
||||||
|
kfree(dvbdev->entity);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
|
Loading…
Reference in New Issue