]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/komeda: return early if drm_universal_plane_init() fails.
authorLiviu Dudau <liviu.dudau@arm.com>
Thu, 2 Dec 2021 17:00:33 +0000 (17:00 +0000)
committerLiviu Dudau <liviu.dudau@arm.com>
Mon, 11 Apr 2022 17:30:18 +0000 (18:30 +0100)
If drm_universal_plane_init() fails early we jump to the common cleanup code
that calls komeda_plane_destroy() which in turn could access the uninitalised
drm_plane and crash. Return early if an error is detected without going through
the common code.

Reported-by: Steven Price <steven.price@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
Link: https://lore.kernel.org/dri-devel/20211203100946.2706922-1-liviu.dudau@arm.com
drivers/gpu/drm/arm/display/komeda/komeda_plane.c

index 9a8197a23c45b558502dbf3f590e440176626af7..e0b9f7063b2015b05505de32d0825b6acb5f06a0 100644 (file)
@@ -270,8 +270,10 @@ static int komeda_plane_add(struct komeda_kms_dev *kms,
 
        komeda_put_fourcc_list(formats);
 
-       if (err)
-               goto cleanup;
+       if (err) {
+               kfree(kplane);
+               return err;
+       }
 
        drm_plane_helper_add(plane, &komeda_plane_helper_funcs);