Re: 6.5.5: UBSAN: radeon_atombios.c: index 1 is out of range for type 'UCHAR [1]'

From: Jeff Johnson
Date: Tue Apr 09 2024 - 11:41:29 EST


On 4/8/2024 9:23 PM, Alex Deucher wrote:
> On Mon, Apr 8, 2024 at 9:45 PM Kees Cook <kees@xxxxxxxxxx> wrote:
>>
>>
>>
>> On April 8, 2024 5:45:29 PM PDT, Jeff Johnson <quic_jjohnson@xxxxxxxxxxx> wrote:
>>> On 10/1/23 17:12, Justin Piszcz wrote:
>>>>>> ================================================================================
>>>>>> [Sun Oct 1 15:59:04 2023] UBSAN: array-index-out-of-bounds in
>>>>>> drivers/gpu/drm/radeon/radeon_atombios.c:2620:43
>>>>>> [Sun Oct 1 15:59:04 2023] index 1 is out of range for type 'UCHAR [1]'
>>>>>> [Sun Oct 1 15:59:04 2023] CPU: 5 PID: 1 Comm: swapper/0 Tainted: G
>>>>>> T 6.5.5 #13 55df8de52754ef95effc50a55e9206abdea304ac
>>>>>> [Sun Oct 1 15:59:04 2023] Hardware name: Supermicro X9SRL-F/X9SRL-F,
>>>>>> BIOS 3.3 11/13/2018
>>>>>> [Sun Oct 1 15:59:04 2023] Call Trace:
>>>>>> [Sun Oct 1 15:59:04 2023] <TASK>
>>>>>> [Sun Oct 1 15:59:04 2023] dump_stack_lvl+0x36/0x50
>>>>>> [Sun Oct 1 15:59:04 2023] __ubsan_handle_out_of_bounds+0xc7/0x110
>>>>>> [Sun Oct 1 15:59:04 2023] radeon_atombios_get_power_modes+0x87a/0x8f0
>>>>>> [Sun Oct 1 15:59:04 2023] radeon_pm_init+0x13a/0x7e0
>>>>>> [Sun Oct 1 15:59:04 2023] evergreen_init+0x13d/0x3d0
>>>>>> [Sun Oct 1 15:59:04 2023] radeon_device_init+0x60a/0xbf0
>>>>>> [Sun Oct 1 15:59:04 2023] radeon_driver_load_kms+0xb1/0x250
>>>>>> [Sun Oct 1 15:59:04 2023] drm_dev_register+0xfc/0x250
>>>>>> [Sun Oct 1 15:59:04 2023] radeon_pci_probe+0xd0/0x150
>>>>>> [Sun Oct 1 15:59:04 2023] pci_device_probe+0x97/0x130
>>>>>> [Sun Oct 1 15:59:04 2023] really_probe+0xbe/0x2f0
>>>>>> [Sun Oct 1 15:59:04 2023] ? __pfx___driver_attach+0x10/0x10
>>>>>> [Sun Oct 1 15:59:04 2023] __driver_probe_device+0x6e/0x120
>>>>>> [Sun Oct 1 15:59:04 2023] driver_probe_device+0x1a/0x90
>>>>>> [Sun Oct 1 15:59:04 2023] __driver_attach+0xd4/0x170
>>>>>> [Sun Oct 1 15:59:04 2023] bus_for_each_dev+0x87/0xe0
>>>>>> [Sun Oct 1 15:59:04 2023] bus_add_driver+0xf3/0x1f0
>>>>>> [Sun Oct 1 15:59:04 2023] driver_register+0x58/0x120
>>>>>> [Sun Oct 1 15:59:04 2023] ? __pfx_radeon_module_init+0x10/0x10
>>>>>> [Sun Oct 1 15:59:04 2023] do_one_initcall+0x93/0x4a0
>>>>>> [Sun Oct 1 15:59:04 2023] kernel_init_freeable+0x301/0x580
>>>>>> [Sun Oct 1 15:59:04 2023] ? __pfx_kernel_init+0x10/0x10
>>>>>> [Sun Oct 1 15:59:04 2023] kernel_init+0x15/0x1b0
>>>>>> [Sun Oct 1 15:59:04 2023] ret_from_fork+0x2f/0x50
>>>>>> [Sun Oct 1 15:59:04 2023] ? __pfx_kernel_init+0x10/0x10
>>>>>> [Sun Oct 1 15:59:04 2023] ret_from_fork_asm+0x1b/0x30
>>>>>> [Sun Oct 1 15:59:04 2023] </TASK>
>>>>>> [Sun Oct 1 15:59:04 2023]
>>>>>> ================================================================================
>>>>>> [Sun Oct 1 15:59:04 2023] [drm] radeon: dpm initialized
>>>>>> [Sun Oct 1 15:59:04 2023] [drm] GART: num cpu pages 262144, num gpu
>>>>>> pages 262144
>>>>>> [Sun Oct 1 15:59:04 2023] [drm] enabling PCIE gen 2 link speeds,
>>>>>> disable with radeon.pcie_gen2=0
>>>>>> [Sun Oct 1 15:59:04 2023] [drm] PCIE GART of 1024M enabled (table at
>>>>>> 0x000000000014C000).
>>>>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: WB enabled
>>>>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: fence driver on ring 0
>>>>>> use gpu addr 0x0000000040000c00
>>>>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: fence driver on ring 3
>>>>>> use gpu addr 0x0000000040000c0c
>>>>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: fence driver on ring 5
>>>>>> use gpu addr 0x000000000005c418
>>>>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: radeon: MSI limited to 32-bit
>>>>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: radeon: using MSI.
>>>>>> [Sun Oct 1 15:59:04 2023] [drm] radeon: irq initialized.
>>>>>>
>>>>>
>>>>> Please also open an issue on freedesktop tracker [1].
>>>>>
>>>>> Thanks.
>>>>>
>>>>> [1]: https://gitlab.freedesktop.org/drm/amd/-/issues
>>>>
>>>> Issue opened: https://gitlab.freedesktop.org/drm/amd/-/issues/2894
>>>>
>>>> Regards,
>>>> Justin
>>>
>>> +Kees since I've worked with him on several of these flexible array issues.
>>>
>>> I just happened to look at kernel logs today for my ath1*k driver maintenance and see the subject issue is present on my device, running 6.9.0-rc1. The freedesktop issue tracker says the issue is closed, but any fix has not landed in the upstream kernel. Is there a -next patch somewhere?
>>>
>>> [ 12.105270] UBSAN: array-index-out-of-bounds in drivers/gpu/drm/radeon/radeon_atombios.c:2718:34
>>> [ 12.105272] index 48 is out of range for type 'UCHAR [1]'
>>> [
>>>
>>> If there isn't really an upstream fix, I can probably supply one.
>>
>> I would expect this to have fixed it:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/gpu/drm/radeon/pptable.h?id=c63079c61177ba1b17fa05c6875699a36924fe39
>>
>> If not, there must be something else happening?
>
> This patch should silence it I think:
> https://patchwork.freedesktop.org/patch/588305/

I can confirm that my issues are resolved with that patch
Tested-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>