Rafael J. Wysocki
b0b83d3f3f
ACPICA: Fix error code path in acpi_ds_call_control_method()
...
[ Upstream commit 404ec60438add1afadaffaed34bb5fe4ddcadd40 ]
A use-after-free in acpi_ps_parse_aml() after a failing invocaion of
acpi_ds_call_control_method() is reported by KASAN [1] and code
inspection reveals that next_walk_state pushed to the thread by
acpi_ds_create_walk_state() is freed on errors, but it is not popped
from the thread beforehand. Thus acpi_ds_get_current_walk_state()
called by acpi_ps_parse_aml() subsequently returns it as the new
walk state which is incorrect.
To address this, make acpi_ds_call_control_method() call
acpi_ds_pop_walk_state() to pop next_walk_state from the thread before
returning an error.
Link: https://lore.kernel.org/linux-acpi/20221019073443.248215-1-chenzhongjin@huawei.com/ # [1]
Reported-by: Chen Zhongjin <chenzhongjin@huawei.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Chen Zhongjin <chenzhongjin@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-14 10:16:14 +01:00
..
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-02-16 10:19:51 +01:00
2020-10-08 18:03:55 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2021-11-18 14:03:56 +01:00
2020-09-04 19:34:15 +02:00
2020-01-13 11:52:48 +01:00
2020-09-04 19:34:15 +02:00
2020-02-16 10:19:51 +01:00
2020-03-30 14:52:33 +02:00
2021-03-11 14:17:21 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-10-08 18:03:55 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2018-03-18 19:08:05 +01:00
2019-10-28 22:12:46 +01:00
2020-06-05 13:34:23 +02:00
2020-10-08 18:03:55 +02:00
2019-10-28 22:12:46 +01:00
2020-05-09 10:55:53 +02:00
2020-10-08 18:03:55 +02:00
2020-10-08 18:03:55 +02:00
2019-10-28 22:12:46 +01:00
2019-10-28 22:12:46 +01:00
2019-08-21 00:00:37 +02:00
2019-02-18 11:21:10 +01:00
2018-03-18 19:08:05 +01:00
2020-03-30 14:52:32 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-05-09 10:55:54 +02:00
2020-01-13 11:52:48 +01:00
2023-01-14 10:16:14 +01:00
2018-03-18 19:08:05 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2018-12-13 22:40:51 +01:00
2020-03-30 14:52:33 +02:00
2020-03-30 14:52:33 +02:00
2020-03-30 14:52:33 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-03-30 14:53:36 +02:00
2020-01-13 11:52:48 +01:00
2020-09-04 19:34:15 +02:00
2020-09-04 19:34:15 +02:00
2020-09-11 16:44:45 +02:00
2020-01-13 11:52:48 +01:00
2021-03-11 14:17:21 +01:00
2020-01-13 11:52:48 +01:00
2021-03-11 14:17:21 +01:00
2020-07-27 12:29:02 +02:00
2018-03-18 19:08:05 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-03-25 12:57:27 +01:00
2021-03-11 14:17:21 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2022-01-27 10:54:19 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2022-01-27 10:54:19 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-07-27 14:55:42 +02:00
2020-07-27 12:29:02 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2022-01-27 10:54:19 +01:00
2020-10-19 14:46:39 +02:00
2018-03-18 19:08:05 +01:00
2018-08-14 23:49:13 +02:00
2022-01-27 10:54:19 +01:00
2020-01-13 11:52:48 +01:00
2020-09-04 19:33:54 +02:00
2020-01-13 11:52:48 +01:00
2022-01-27 10:54:19 +01:00
2018-12-20 10:19:49 +01:00
2021-03-30 14:31:54 +02:00
2020-10-08 18:03:56 +02:00
2020-10-08 18:03:55 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2019-07-04 00:59:43 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-03-30 14:52:33 +02:00
2019-04-09 10:05:11 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2021-08-12 13:22:01 +02:00
2020-01-13 11:52:48 +01:00
2018-07-09 11:14:45 +02:00
2020-01-13 11:52:48 +01:00
2022-04-08 14:40:31 +02:00
2018-03-18 19:08:05 +01:00
2020-02-16 10:19:53 +01:00
2020-10-08 18:03:55 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-10-08 18:03:55 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2018-03-18 19:08:05 +01:00
2018-03-18 19:08:05 +01:00
2019-10-28 22:12:46 +01:00
2018-05-15 10:16:10 +02:00
2019-02-24 21:12:01 +01:00
2018-03-18 19:08:05 +01:00
2018-03-18 19:08:05 +01:00
2019-02-24 21:12:01 +01:00
2018-03-18 19:08:05 +01:00
2018-03-18 19:08:05 +01:00
2018-03-18 19:08:05 +01:00
2019-02-24 21:12:01 +01:00
2018-03-18 19:08:05 +01:00
2019-04-09 10:08:28 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-02-16 10:19:52 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2023-01-14 10:15:21 +01:00
2020-01-13 11:52:48 +01:00
2020-06-05 13:34:23 +02:00
2022-01-27 10:54:18 +01:00
2019-08-21 00:00:36 +02:00
2020-01-13 11:52:48 +01:00
2018-03-18 19:08:05 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-07-27 14:55:42 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2018-03-18 19:08:05 +01:00
2019-04-09 10:08:28 +02:00
2018-05-10 17:18:45 +02:00
2018-03-18 19:08:05 +01:00
2020-02-16 10:19:53 +01:00
2020-01-13 11:52:48 +01:00
2019-08-21 00:00:36 +02:00
2020-10-08 18:03:55 +02:00
2020-03-30 14:52:32 +02:00
2018-03-18 19:08:05 +01:00
2018-03-18 19:08:05 +01:00
2018-03-18 19:08:05 +01:00
2019-04-09 11:24:48 +02:00
2020-10-08 18:03:55 +02:00
2018-08-14 23:49:13 +02:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2020-01-13 11:52:48 +01:00
2019-01-15 18:04:02 +01:00
2020-01-13 11:52:48 +01:00
2018-03-18 19:08:05 +01:00