drm/amdgpu: Off by one in dm_dmub_outbox1_low_irq()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 16 May 2022 07:05:48 +0000 (10:05 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Jul 2022 15:25:33 +0000 (17:25 +0200)
commit a35faec3db0e13aac8ea720bc1a3503081dd5a3d upstream.

The > ARRAY_SIZE() should be >= ARRAY_SIZE() to prevent an out of bounds
access.

Fixes: e27c41d5b068 ("drm/amd/display: Support for DMUB HPD interrupt handling")
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 5323d00..adf0517 100644 (file)
@@ -757,7 +757,7 @@ static void dm_dmub_outbox1_low_irq(void *interrupt_params)
                if (irq_params->irq_src == DC_IRQ_SOURCE_DMCUB_OUTBOX) {
                        do {
                                dc_stat_get_dmub_notification(adev->dm.dc, &notify);
-                               if (notify.type > ARRAY_SIZE(dm->dmub_thread_offload)) {
+                               if (notify.type >= ARRAY_SIZE(dm->dmub_thread_offload)) {
                                        DRM_ERROR("DM: notify type %d larger than the array size %ld !", notify.type,
                                        ARRAY_SIZE(dm->dmub_thread_offload));
                                        continue;