Rafael J. Wysocki
9ef353c92f
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-18 11:41:34 +01:00
..
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-02-18 11:21:10 +01:00
2019-01-15 18:04:02 +01:00
2019-06-19 11:46:21 +02:00
2021-11-17 09:48:30 +01:00
2020-04-17 10:50:09 +02:00
2019-01-15 18:04:02 +01:00
2019-08-21 00:00:36 +02:00
2019-02-24 21:12:01 +01:00
2020-04-23 10:36:39 +02:00
2021-03-11 14:06:49 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-02-18 11:21:11 +01:00
2019-01-15 18:04:02 +01:00
2019-08-21 00:00:36 +02:00
2019-01-15 18:04:02 +01:00
2019-08-21 00:00:37 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +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
2019-04-09 10:08:28 +02:00
2018-03-18 19:08:05 +01:00
2019-08-21 00:00:36 +02:00
2020-04-23 10:36:39 +02:00
2019-08-21 00:00:36 +02:00
2019-04-09 11:24:48 +02:00
2019-08-21 00:00:36 +02: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
2018-11-08 18:41:47 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2020-06-22 09:30:52 +02:00
2019-07-04 00:59:43 +02:00
2023-01-18 11:41:34 +01:00
2018-03-18 19:08:05 +01:00
2019-01-15 18:04:02 +01:00
2019-02-18 11:21:10 +01:00
2019-01-15 18:04:02 +01:00
2018-12-13 22:40:51 +01:00
2020-04-23 10:36:39 +02:00
2020-04-23 10:36:39 +02:00
2020-04-23 10:36:39 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2020-02-28 17:22:20 +01:00
2019-01-15 18:04:02 +01:00
2019-06-19 11:46:21 +02:00
2019-06-19 11:46:21 +02:00
2019-04-09 11:24:48 +02:00
2019-01-15 18:04:02 +01:00
2021-03-11 14:06:49 +01:00
2019-01-15 18:04:02 +01:00
2021-03-11 14:06:49 +01:00
2019-02-18 11:21:10 +01:00
2018-03-18 19:08:05 +01:00
2019-06-19 11:46:21 +02:00
2019-01-15 18:04:02 +01:00
2020-04-17 10:50:09 +02:00
2021-03-11 14:06:49 +01:00
2019-01-15 18:04:02 +01:00
2019-07-11 22:38:42 +02:00
2019-02-24 21:12:01 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-08-21 00:00:36 +02:00
2022-01-27 09:19:45 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-04-09 11:24:48 +02:00
2022-01-27 09:19:45 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2020-08-19 08:16:05 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-02-24 21:12:01 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-02-24 21:12:01 +01:00
2019-01-15 18:04:02 +01:00
2022-01-27 09:19:45 +01:00
2020-04-17 10:50:09 +02:00
2018-03-18 19:08:05 +01:00
2018-08-14 23:49:13 +02:00
2022-01-27 09:19:45 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2022-01-27 09:19:45 +01:00
2018-12-20 10:19:49 +01:00
2022-05-12 12:23:41 +02:00
2019-08-21 00:00:36 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-08-21 00:00:36 +02:00
2019-01-15 18:04:02 +01:00
2019-07-04 00:59:43 +02:00
2019-07-04 00:59:43 +02:00
2019-07-04 00:59:43 +02:00
2020-04-23 10:36:39 +02:00
2019-04-09 10:05:11 +02:00
2019-04-09 10:08:28 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2021-08-12 13:20:54 +02:00
2019-04-09 10:08:28 +02:00
2018-07-09 11:14:45 +02:00
2019-07-04 00:59:43 +02:00
2022-04-15 14:18:22 +02:00
2018-03-18 19:08:05 +01:00
2019-04-09 10:08:28 +02:00
2018-03-18 19:08:05 +01:00
2019-04-09 11:24:48 +02:00
2019-02-18 11:21:10 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-02-18 11:21:10 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +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
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
2019-08-21 00:00:36 +02:00
2019-02-24 21:12:01 +01:00
2019-04-09 11:24:48 +02:00
2019-04-09 10:08:28 +02:00
2019-04-09 11:24:48 +02:00
2019-04-09 10:08:28 +02:00
2019-04-09 10:08:28 +02:00
2019-07-11 22:38:42 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-04-09 11:24:48 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2023-01-18 11:40:57 +01:00
2019-08-21 00:00:37 +02:00
2019-04-09 11:25:26 +02:00
2022-01-27 09:19:45 +01:00
2019-08-21 00:00:36 +02:00
2019-01-15 18:04:02 +01:00
2018-03-18 19:08:05 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-07-04 00:59:43 +02:00
2019-01-15 18:04:02 +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
2019-01-15 18:04:02 +01:00
2019-08-21 00:00:37 +02:00
2019-08-21 00:00:36 +02:00
2019-04-09 10:08:28 +02:00
2019-01-15 18:04:02 +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-04-09 11:24:48 +02:00
2018-08-14 23:49:13 +02:00
2018-08-14 23:49:13 +02:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-01-15 18:04:02 +01:00
2019-07-04 00:59:43 +02:00
2018-03-18 19:08:05 +01:00