platform/chrome: fix double-free in chromeos_laptop_prepare()
authorRustam Subkhankulov <subkhankulov@ispras.ru>
Sat, 13 Aug 2022 22:08:43 +0000 (01:08 +0300)
committerTzung-Bi Shih <tzungbi@kernel.org>
Mon, 22 Aug 2022 06:56:45 +0000 (06:56 +0000)
commit6ad4194d6a1e1d11b285989cd648ef695b4a93c0
treec4b38487ea69a8b39b1d4ca205e7c5cac5d1d28c
parent1a8912caba02522f612d465a4849ce98915b96ad
platform/chrome: fix double-free in chromeos_laptop_prepare()

If chromeos_laptop_prepare_i2c_peripherals() fails after allocating memory
for 'cros_laptop->i2c_peripherals', this memory is freed at 'err_out' label
and nonzero value is returned. Then chromeos_laptop_destroy() is called,
resulting in double-free error.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Rustam Subkhankulov <subkhankulov@ispras.ru>
Fixes: 5020cd29d8bf ("platform/chrome: chromeos_laptop - supply properties for ACPI devices")
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Link: https://lore.kernel.org/r/20220813220843.2373004-1-subkhankulov@ispras.ru
drivers/platform/chrome/chromeos_laptop.c