In the Linux kernel, the following vulnerability has been resolved:
dmaengine: ti: edma: Fix memory allocation size for queue_priority_map
Fix a critical memory allocation bug in edma_setup_from_hw() where queue_priority_map was allocated with insufficient memory. The code declared queue_priority_map as s8 (*)[2] (pointer to array of 2 s8), but allocated memory using sizeof(s8) instead of the correct size.
This caused out-of-bounds memory writes when accessing: queue_priority_map[i][0] = i; queue_priority_map[i][1] = i;
The bug manifested as kernel crashes with "Oops - undefined instruction" on ARM platforms (BeagleBoard-X15) during EDMA driver probe, as the memory corruption triggered kernel hardening features on Clang.
Change the allocation to use sizeof(*queue_priority_map) which automatically gets the correct size for the 2D array structure.
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 4.4 | 5.4.300 |
| linux / linux_kernel | 5.5 | 5.10.245 |
| linux / linux_kernel | 5.11 | 5.15.194 |
| linux / linux_kernel | 5.16 | 6.1.153 |
| linux / linux_kernel | 6.2 | 6.6.107 |
| linux / linux_kernel | 6.7 | 6.12.48 |
| linux / linux_kernel | 6.13 | 6.16.8 |
| linux / linux_kernel | 6.17-rc1 | 6.17-rc1.x |
| linux / linux_kernel | 6.17-rc2 | 6.17-rc2.x |
| linux / linux_kernel | 6.17-rc3 | 6.17-rc3.x |
| linux / linux_kernel | 6.17-rc4 | 6.17-rc4.x |
| linux / linux_kernel | 6.17-rc5 | 6.17-rc5.x |
| debian / debian_linux | 11.0 | 11.0.x |