Description
In the Linux kernel, the following vulnerability has been resolved: net: liquidio: Initialize netdev pointer before queue setup In setup_nic_devices(), the netdev is allocated using alloc_etherdev_mq(). However, the pointer to this structure is stored in oct->props[i].netdev only after the calls to netif_set_real_num_rx_queues() and netif_set_real_num_tx_queues(). If either of these functions fails, setup_nic_devices() returns an error without freeing the allocated netdev. Since oct->props[i].netdev is still NULL at this point, the cleanup function liquidio_destroy_nic_device() will fail to find and free the netdev, resulting in a memory leak. Fix this by initializing oct->props[i].netdev before calling the queue setup functions. This ensures that the netdev is properly accessible for cleanup in case of errors. Compile tested only. Issue found using a prototype static analysis tool and code review.
Product status
c33c997346c34ea7b89aec99524ad9632a2f1e0c (git) before be109646cdaecab262f6276303b1763468c94378
c33c997346c34ea7b89aec99524ad9632a2f1e0c (git) before c81a8515fb8c8fb5d0dbc21f48337494bf1d60df
c33c997346c34ea7b89aec99524ad9632a2f1e0c (git) before a0e57c0b68c9e6f9a8fd7c1167861a5a730eb2f4
c33c997346c34ea7b89aec99524ad9632a2f1e0c (git) before c0ed6c77ec34050971fd0df2a94dfdea66d09331
c33c997346c34ea7b89aec99524ad9632a2f1e0c (git) before 1d4590fde856cb94bd9a46e795c29d8288c238fc
c33c997346c34ea7b89aec99524ad9632a2f1e0c (git) before d028147ae06407cb355245db1774793600670169
c33c997346c34ea7b89aec99524ad9632a2f1e0c (git) before 926ede0c85e1e57c97d64d9612455267d597bb2c
4.18
Any version before 4.18
5.10.250 (semver)
5.15.200 (semver)
6.1.163 (semver)
6.6.124 (semver)
6.12.70 (semver)
6.18.10 (semver)
6.19 (original_commit_for_fix)
References
git.kernel.org/...c/be109646cdaecab262f6276303b1763468c94378
git.kernel.org/...c/c81a8515fb8c8fb5d0dbc21f48337494bf1d60df
git.kernel.org/...c/a0e57c0b68c9e6f9a8fd7c1167861a5a730eb2f4
git.kernel.org/...c/c0ed6c77ec34050971fd0df2a94dfdea66d09331
git.kernel.org/...c/1d4590fde856cb94bd9a46e795c29d8288c238fc
git.kernel.org/...c/d028147ae06407cb355245db1774793600670169
git.kernel.org/...c/926ede0c85e1e57c97d64d9612455267d597bb2c