Description
In the Linux kernel, the following vulnerability has been resolved: dpaa2-switch: prevent ZERO_SIZE_PTR dereference when num_ifs is zero The driver allocates arrays for ports, FDBs, and filter blocks using kcalloc() with ethsw->sw_attr.num_ifs as the element count. When the device reports zero interfaces (either due to hardware configuration or firmware issues), kcalloc(0, ...) returns ZERO_SIZE_PTR (0x10) instead of NULL. Later in dpaa2_switch_probe(), the NAPI initialization unconditionally accesses ethsw->ports[0]->netdev, which attempts to dereference ZERO_SIZE_PTR (address 0x10), resulting in a kernel panic. Add a check to ensure num_ifs is greater than zero after retrieving device attributes. This prevents the zero-sized allocations and subsequent invalid pointer dereference.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
0b1b71370458860579831e77485883fcf2e8fbbe to < 2fcccca88456b592bd668db13aa1d29ed257ca2baffected0b1b71370458860579831e77485883fcf2e8fbbe to < 80165ff16051448d6f840585ebe13f2400415df3affected0b1b71370458860579831e77485883fcf2e8fbbe to < b97415c4362f739e25ec6f71012277086fabdf6faffected0b1b71370458860579831e77485883fcf2e8fbbe to < 4acc40db06ffd0fd92683505342b00c8a7394c60affected0b1b71370458860579831e77485883fcf2e8fbbe to < 155eb99aff2920153bf21217ae29565fff81e6afaffected0b1b71370458860579831e77485883fcf2e8fbbe to < ed48a84a72fefb20a82dd90a7caa7807e90c6f66affected
Linux Linux
Default version status: affected
5.13affected0 to < 5.13unaffected5.15.200 to ≤ 5.15.*unaffected6.1.163 to ≤ 6.1.*unaffected6.6.124 to ≤ 6.6.*unaffected6.12.70 to ≤ 6.12.*unaffected6.18.10 to ≤ 6.18.*unaffected6.19 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/2fcccca88456b592bd668db13aa1d29ed257ca2b ↗
- https://git.kernel.org/stable/c/80165ff16051448d6f840585ebe13f2400415df3 ↗
- https://git.kernel.org/stable/c/b97415c4362f739e25ec6f71012277086fabdf6f ↗
- https://git.kernel.org/stable/c/4acc40db06ffd0fd92683505342b00c8a7394c60 ↗
- https://git.kernel.org/stable/c/155eb99aff2920153bf21217ae29565fff81e6af ↗
- https://git.kernel.org/stable/c/ed48a84a72fefb20a82dd90a7caa7807e90c6f66 ↗