ACPI / sysfs: fix acpi_get_table() leak / acpi-sysfs denial of service
authorDan Williams <dan.j.williams@intel.com>
Tue, 25 Apr 2017 19:58:31 +0000 (12:58 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 26 Apr 2017 22:27:49 +0000 (00:27 +0200)
commit0de0e198bc7191a0e46cf71f66fec4d07ca91396
treec87c76de72cb5ba4f4d93a3b85f4f39ed5b92eaf
parent5a7ad1146caa895ad718a534399e38bd2ba721b7
ACPI / sysfs: fix acpi_get_table() leak / acpi-sysfs denial of service

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.

Reported-by: Anush Seetharaman <anush.seetharaman@intel.com>
Fixes: 174cc7187e6f "ACPICA: Tables: Back port acpi_get_table_with_size() ..."
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Cc: 4.10+ <stable@vger.kernel.org> # 4.10+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/sysfs.c