]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86: toshiba_haps: Fix memory leaks in add/remove routines
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 26 Jan 2026 14:38:45 +0000 (16:38 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Mon, 26 Jan 2026 14:38:45 +0000 (16:38 +0200)
toshiba_haps_add() leaks the haps object allocated by it if it returns
an error after allocating that object successfully.

toshiba_haps_remove() does not free the object pointed to by
toshiba_haps before clearing that pointer, so it becomes unreachable
allocated memory.

Address these memory leaks by using devm_kzalloc() for allocating
the memory in question.

Fixes: 23d0ba0c908a ("platform/x86: Toshiba HDD Active Protection Sensor")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/platform/x86/toshiba_haps.c

index 03dfddeee0c0af78b36e27b714cd8684af6cc195..e9324bf16aea4b6ffefa18f782824bfdbb58e588 100644 (file)
@@ -183,7 +183,7 @@ static int toshiba_haps_add(struct acpi_device *acpi_dev)
 
        pr_info("Toshiba HDD Active Protection Sensor device\n");
 
-       haps = kzalloc(sizeof(struct toshiba_haps_dev), GFP_KERNEL);
+       haps = devm_kzalloc(&acpi_dev->dev, sizeof(*haps), GFP_KERNEL);
        if (!haps)
                return -ENOMEM;