Re: [PATCH v2] acpi: fix acpi_get_table() leak / acpi-sysfs denial of service

From: Dan Williams
Date: Wed Apr 26 2017 - 18:37:55 EST


On Wed, Apr 26, 2017 at 3:25 PM, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
> On Tue, Apr 25, 2017 at 9:58 PM, Dan Williams <dan.j.williams@xxxxxxxxx> 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@xxxxxxxxxxxxxxx>
>> Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
>> Cc: Rafael Wysocki <rafael.j.wysocki@xxxxxxxxx>
>> Cc: Kristin Jacque <kristin.jacque@xxxxxxxxx>
>> Cc: Tiffany Kasanicky <tiffany.j.kasanicky@xxxxxxxxx>
>> Cc: Ryon Jensen <ryon.jensen@xxxxxxxxx>
>> Reported-by: Anush Seetharaman <anush.seetharaman@xxxxxxxxx>
>> Fixes: 1c8fce27e275 ("ACPI: introduce drivers/acpi/sysfs.c")
>> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
>
> 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@xxxxxxxxx>
> 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!