]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
most: usb: hdm_probe: Fix calling put_device() before device initialization
authorVictoria Votokina <Victoria.Votokina@kaspersky.com>
Fri, 10 Oct 2025 10:52:41 +0000 (13:52 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 13:03:13 +0000 (14:03 +0100)
commit a8cc9e5fcb0e2eef21513a4fec888f5712cb8162 upstream.

The early error path in hdm_probe() can jump to err_free_mdev before
&mdev->dev has been initialized with device_initialize(). Calling
put_device(&mdev->dev) there triggers a device core WARN and ends up
invoking kref_put(&kobj->kref, kobject_release) on an uninitialized
kobject.

In this path the private struct was only kmalloc'ed and the intended
release is effectively kfree(mdev) anyway, so free it directly instead
of calling put_device() on an uninitialized device.

This removes the WARNING and fixes the pre-initialization error path.

Fixes: 97a6f772f36b ("drivers: most: add USB adapter driver")
Cc: stable <stable@kernel.org>
Signed-off-by: Victoria Votokina <Victoria.Votokina@kaspersky.com>
Link: https://patch.msgid.link/20251010105241.4087114-3-Victoria.Votokina@kaspersky.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/most/most_usb.c

index 8ad8122fba5fde719b178eb618157f21be6fc767..82512d5c127c88990d20df54659a1c991179a0ed 100644 (file)
@@ -1097,7 +1097,7 @@ err_free_cap:
 err_free_conf:
        kfree(mdev->conf);
 err_free_mdev:
-       put_device(&mdev->dev);
+       kfree(mdev);
        return ret;
 }