[PATCH 0/2][SRU][Unstable/Mantic/Lunar] UBSAN: shift-out-of-bounds in amd_sfh

You-Sheng Yang vicamo.yang at canonical.com
Fri Jul 14 08:11:24 UTC 2023


BugLink: https://bugs.launchpad.net/bugs/2027773

[Impact]

UBSAN: shift-out-of-bounds in drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_desc.c:149:50
[ 7.928631] shift exponent 103 is too large for 64-bit type 'long unsigned int'
[ 9.877309] Workqueue: events amd_sfh_work_buffer \[amd_sfh]
[ 9.877327] Call Trace:
[ 9.877331] \<TASK>
[ 9.877335] dump_stack_lvl+0x49/0x63
[ 9.877346] dump_stack+0x10/0x16
[ 9.877348] ubsan_epilogue+0x9/0x36
[ 9.877357] __ubsan_handle_shift_out_of_bounds.cold+0x61/0xef
[ 9.877363] ? _raw_spin_lock+0x17/0x50
[ 9.877369] ? raw_spin_rq_lock_nested+0x2e/0xa0
[ 9.877378] ? psi_group_change+0x1e2/0x4a0
[ 9.877385] float_to_int.cold+0x18/0xc8 \[amd_sfh]
[ 9.877394] ? get_feature_rep+0xb0/0xb0 \[amd_sfh]
[ 9.877402] get_input_rep+0x219/0x2f0 \[amd_sfh]
[ 9.877409] ? up+0x37/0x70
[ 9.877414] ? hid_input_report+0x104/0x170 \[hid]
[ 9.877428] amd_sfh_work_buffer+0x94/0x150 \[amd_sfh]
[ 9.877436] process_one_work+0x21f/0x3f0
[ 9.877443] worker_thread+0x50/0x3e0
[ 9.877446] ? process_one_work+0x3f0/0x3f0
[ 9.877449] kthread+0xfd/0x130
[ 9.877452] ? kthread_complete_and_exit+0x20/0x20
[ 9.877454] ret_from_fork+0x22/0x30
[ 9.877463] \</TASK>

[Fix]

Fixes in:
* commit c1685a862a4b ("HID: amd_sfh: Rename the float32 variable")
* commit 878543661764 ("HID: amd_sfh: Fix for shift-out-of-bounds")

[Test Case]

The affected platform should no longer has such error dumped in kernel dmesg at
boot.

[Where problems could occur]

This renamed a variable and corrected the way shift offset is calculated. No
known side effect.

[Other Info]

The affects kernel >= v6.0 and < v6.5, so Unstable/Mantis/Lunar/OEM-6.1 are
nominated for fix.


Basavaraj Natikar (2):
  HID: amd_sfh: Rename the float32 variable
  HID: amd_sfh: Fix for shift-out-of-bounds

 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_desc.c | 30 ++++++++++++++-----
 1 file changed, 23 insertions(+), 7 deletions(-)

-- 
2.40.1




More information about the kernel-team mailing list