From: Greg Kroah-Hartman Date: Tue, 1 Aug 2023 08:06:36 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v5.15.124~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bbe10b6242ba71b5e4fde93ec8fd5eb7b4a0a0c3;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: drm-client-fix-memory-leak-in-drm_client_target_cloned.patch --- diff --git a/queue-4.14/drm-client-fix-memory-leak-in-drm_client_target_cloned.patch b/queue-4.14/drm-client-fix-memory-leak-in-drm_client_target_cloned.patch new file mode 100644 index 00000000000..2f2db492e97 --- /dev/null +++ b/queue-4.14/drm-client-fix-memory-leak-in-drm_client_target_cloned.patch @@ -0,0 +1,69 @@ +From c2a88e8bdf5f6239948d75283d0ae7e0c7945b03 Mon Sep 17 00:00:00 2001 +From: Jocelyn Falempe +Date: Tue, 11 Jul 2023 11:20:43 +0200 +Subject: drm/client: Fix memory leak in drm_client_target_cloned + +From: Jocelyn Falempe + +commit c2a88e8bdf5f6239948d75283d0ae7e0c7945b03 upstream. + +dmt_mode is allocated and never freed in this function. +It was found with the ast driver, but most drivers using generic fbdev +setup are probably affected. + +This fixes the following kmemleak report: + backtrace: + [<00000000b391296d>] drm_mode_duplicate+0x45/0x220 [drm] + [<00000000e45bb5b3>] drm_client_target_cloned.constprop.0+0x27b/0x480 [drm] + [<00000000ed2d3a37>] drm_client_modeset_probe+0x6bd/0xf50 [drm] + [<0000000010e5cc9d>] __drm_fb_helper_initial_config_and_unlock+0xb4/0x2c0 [drm_kms_helper] + [<00000000909f82ca>] drm_fbdev_client_hotplug+0x2bc/0x4d0 [drm_kms_helper] + [<00000000063a69aa>] drm_client_register+0x169/0x240 [drm] + [<00000000a8c61525>] ast_pci_probe+0x142/0x190 [ast] + [<00000000987f19bb>] local_pci_probe+0xdc/0x180 + [<000000004fca231b>] work_for_cpu_fn+0x4e/0xa0 + [<0000000000b85301>] process_one_work+0x8b7/0x1540 + [<000000003375b17c>] worker_thread+0x70a/0xed0 + [<00000000b0d43cd9>] kthread+0x29f/0x340 + [<000000008d770833>] ret_from_fork+0x1f/0x30 +unreferenced object 0xff11000333089a00 (size 128): + +cc: +Fixes: 1d42bbc8f7f9 ("drm/fbdev: fix cloning on fbcon") +Reported-by: Zhang Yi +Signed-off-by: Jocelyn Falempe +Reviewed-by: Javier Martinez Canillas +Reviewed-by: Thomas Zimmermann +Link: https://patchwork.freedesktop.org/patch/msgid/20230711092203.68157-2-jfalempe@redhat.com +Signed-off-by: Jocelyn Falempe +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/drm_fb_helper.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/gpu/drm/drm_fb_helper.c ++++ b/drivers/gpu/drm/drm_fb_helper.c +@@ -2112,6 +2112,9 @@ static bool drm_target_cloned(struct drm + can_clone = true; + dmt_mode = drm_mode_find_dmt(fb_helper->dev, 1024, 768, 60, false); + ++ if (!dmt_mode) ++ goto fail; ++ + drm_fb_helper_for_each_connector(fb_helper, i) { + if (!enabled[i]) + continue; +@@ -2124,11 +2127,13 @@ static bool drm_target_cloned(struct drm + if (!modes[i]) + can_clone = false; + } ++ kfree(dmt_mode); + + if (can_clone) { + DRM_DEBUG_KMS("can clone using 1024x768\n"); + return true; + } ++fail: + DRM_INFO("kms: can't enable cloning when we probably wanted to.\n"); + return false; + } diff --git a/queue-4.14/series b/queue-4.14/series index 5984e9f5717..2407f5ab8e3 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -174,3 +174,4 @@ irq-bcm6345-l1-do-not-assume-a-fixed-block-to-cpu-ma.patch s390-dasd-fix-hanging-device-after-quiesce-resume.patch asoc-wm8904-fill-the-cache-for-wm8904_adc_test_0-register.patch dm-cache-policy-smq-ensure-io-doesn-t-prevent-cleaner-policy-progress.patch +drm-client-fix-memory-leak-in-drm_client_target_cloned.patch