From: Greg Kroah-Hartman Date: Thu, 22 Jun 2023 09:19:44 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v4.14.320~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=af0a3376d788eaf60d79d041a3a7b099f993e382;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: media-dvbdev-fix-error-logic-at-dvb_register_device.patch media-dvbdev-fix-memleak-in-dvb_register_device.patch --- diff --git a/queue-5.4/media-dvbdev-fix-error-logic-at-dvb_register_device.patch b/queue-5.4/media-dvbdev-fix-error-logic-at-dvb_register_device.patch new file mode 100644 index 00000000000..bd8e9739387 --- /dev/null +++ b/queue-5.4/media-dvbdev-fix-error-logic-at-dvb_register_device.patch @@ -0,0 +1,51 @@ +From 1fec2ecc252301110e4149e6183fa70460d29674 Mon Sep 17 00:00:00 2001 +From: Mauro Carvalho Chehab +Date: Wed, 9 Jun 2021 14:32:29 +0200 +Subject: media: dvbdev: fix error logic at dvb_register_device() + +From: Mauro Carvalho Chehab + +commit 1fec2ecc252301110e4149e6183fa70460d29674 upstream. + +As reported by smatch: + + drivers/media/dvb-core/dvbdev.c: drivers/media/dvb-core/dvbdev.c:510 dvb_register_device() warn: '&dvbdev->list_head' not removed from list + drivers/media/dvb-core/dvbdev.c: drivers/media/dvb-core/dvbdev.c:530 dvb_register_device() warn: '&dvbdev->list_head' not removed from list + drivers/media/dvb-core/dvbdev.c: drivers/media/dvb-core/dvbdev.c:545 dvb_register_device() warn: '&dvbdev->list_head' not removed from list + +The error logic inside dvb_register_device() doesn't remove +devices from the dvb_adapter_list in case of errors. + +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Ovidiu Panait +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/dvb-core/dvbdev.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/media/dvb-core/dvbdev.c ++++ b/drivers/media/dvb-core/dvbdev.c +@@ -511,6 +511,7 @@ int dvb_register_device(struct dvb_adapt + break; + + if (minor == MAX_DVB_MINORS) { ++ list_del (&dvbdev->list_head); + kfree(dvbdevfops); + kfree(dvbdev); + up_write(&minor_rwsem); +@@ -531,6 +532,7 @@ int dvb_register_device(struct dvb_adapt + __func__); + + dvb_media_device_free(dvbdev); ++ list_del (&dvbdev->list_head); + kfree(dvbdevfops); + kfree(dvbdev); + mutex_unlock(&dvbdev_register_lock); +@@ -546,6 +548,7 @@ int dvb_register_device(struct dvb_adapt + pr_err("%s: failed to create device dvb%d.%s%d (%ld)\n", + __func__, adap->num, dnames[type], id, PTR_ERR(clsdev)); + dvb_media_device_free(dvbdev); ++ list_del (&dvbdev->list_head); + kfree(dvbdevfops); + kfree(dvbdev); + return PTR_ERR(clsdev); diff --git a/queue-5.4/media-dvbdev-fix-memleak-in-dvb_register_device.patch b/queue-5.4/media-dvbdev-fix-memleak-in-dvb_register_device.patch new file mode 100644 index 00000000000..f7e30b018ed --- /dev/null +++ b/queue-5.4/media-dvbdev-fix-memleak-in-dvb_register_device.patch @@ -0,0 +1,33 @@ +From 167faadfcf9339088910e9e85a1b711fcbbef8e9 Mon Sep 17 00:00:00 2001 +From: Dinghao Liu +Date: Mon, 24 Aug 2020 14:27:46 +0200 +Subject: media: dvbdev: Fix memleak in dvb_register_device + +From: Dinghao Liu + +commit 167faadfcf9339088910e9e85a1b711fcbbef8e9 upstream. + +When device_create() fails, dvbdev and dvbdevfops should +be freed just like when dvb_register_media_device() fails. + +Signed-off-by: Dinghao Liu +Signed-off-by: Sean Young +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Ovidiu Panait +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/dvb-core/dvbdev.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/media/dvb-core/dvbdev.c ++++ b/drivers/media/dvb-core/dvbdev.c +@@ -545,6 +545,9 @@ int dvb_register_device(struct dvb_adapt + if (IS_ERR(clsdev)) { + pr_err("%s: failed to create device dvb%d.%s%d (%ld)\n", + __func__, adap->num, dnames[type], id, PTR_ERR(clsdev)); ++ dvb_media_device_free(dvbdev); ++ kfree(dvbdevfops); ++ kfree(dvbdev); + return PTR_ERR(clsdev); + } + dprintk("DVB: register adapter%d/%s%d @ minor: %i (0x%02x)\n", diff --git a/queue-5.4/series b/queue-5.4/series index 5be7fd2160c..4f5069e36b4 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -5,3 +5,5 @@ epoll-ep_autoremove_wake_function-should-use-list_de.patch tracing-add-tracing_reset_all_online_cpus_unlocked-function.patch x86-purgatory-remove-pgo-flags.patch tick-common-align-tick-period-during-sched_timer-setup.patch +media-dvbdev-fix-memleak-in-dvb_register_device.patch +media-dvbdev-fix-error-logic-at-dvb_register_device.patch