Messages in this thread | | | From | Dan Williams <> | Date | Wed, 24 May 2017 12:01:20 -0700 | Subject | Re: [PATCH v2] acpi: fix acpi_get_table() leak / acpi-sysfs denial of service |
| |
On Wed, Apr 26, 2017 at 3:37 PM, Dan Williams <dan.j.williams@intel.com> wrote: > On Wed, Apr 26, 2017 at 3:25 PM, Rafael J. Wysocki <rafael@kernel.org> wrote: >> On Tue, Apr 25, 2017 at 9:58 PM, Dan Williams <dan.j.williams@intel.com> wrote: >>> Reading an ACPI table through the /sys/firmware/acpi/tables interface >>> more than 65,536 times leads to the following log message: >>> >>> ACPI Error: Table ffff88033595eaa8, Validation count is zero after increment >>> (20170119/tbutils-423) >>> >>> ...and the table being unavailable until the next reboot. Add the >>> missing acpi_put_table() so the table ->validation_count is decremented >>> after each read. >>> >>> Cc: <stable@vger.kernel.org> >>> Cc: Zhang Rui <rui.zhang@intel.com> >>> Cc: Rafael Wysocki <rafael.j.wysocki@intel.com> >>> Cc: Kristin Jacque <kristin.jacque@intel.com> >>> Cc: Tiffany Kasanicky <tiffany.j.kasanicky@intel.com> >>> Cc: Ryon Jensen <ryon.jensen@intel.com> >>> Reported-by: Anush Seetharaman <anush.seetharaman@intel.com> >>> Fixes: 1c8fce27e275 ("ACPI: introduce drivers/acpi/sysfs.c") >>> Signed-off-by: Dan Williams <dan.j.williams@intel.com> >> >> I'm going to apply this, but your Fixes tag is not correct. >> >> validation_count was added to struct acpi_table_desc by commit >> >> commit 174cc7187e6f088942c8e74daa7baff7b44b33c9 >> Author: Lv Zheng <lv.zheng@intel.com> >> Date: Wed Dec 14 15:04:25 2016 +0800 >> >> ACPICA: Tables: Back port acpi_get_table_with_size() and >> early_acpi_os_unmap_memory() >> from Linux kernel >> >> from the 4.10 time frame, so IMO it should be >> >> Fixes: 174cc7187e6f (ACPICA: Tables: Back port >> acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux >> kernel) >> > > Ah, thanks for the catch, I missed that detail and was wrong to argue > it was a 7 year old bug. Apologies Lv!
Hi Rafael, I don't see this in latest Linus master or queued in your bleeding-edge branch.
| |