]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: mana: fix use-after-free in add_adev() error path
authorGuangshuo Li <lgs201920130244@gmail.com>
Mon, 23 Mar 2026 16:57:30 +0000 (00:57 +0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 25 Mar 2026 04:07:58 +0000 (21:07 -0700)
commitc4ea7d8907cf72b259bf70bd8c2e791e1c4ff70f
tree20e2bdfd7864208cb4b16ab80701350587c886ef
parent815980fe6dbb01ad4007e8b260a45617f598b76d
net: mana: fix use-after-free in add_adev() error path

If auxiliary_device_add() fails, add_adev() jumps to add_fail and calls
auxiliary_device_uninit(adev).

The auxiliary device has its release callback set to adev_release(),
which frees the containing struct mana_adev. Since adev is embedded in
struct mana_adev, the subsequent fall-through to init_fail and access
to adev->id may result in a use-after-free.

Fix this by saving the allocated auxiliary device id in a local
variable before calling auxiliary_device_add(), and use that saved id
in the cleanup path after auxiliary_device_uninit().

Fixes: a69839d4327d ("net: mana: Add support for auxiliary device")
Cc: stable@vger.kernel.org
Reviewed-by: Long Li <longli@microsoft.com>
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Link: https://patch.msgid.link/20260323165730.945365-1-lgs201920130244@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/microsoft/mana/mana_en.c