[patch 79/96] ACPI: fix broken usage of name.ascii

Greg KH
2009-03-14T00:46:23Z

[-- Attachment #1: acpi-fix-broken-usage-of-name.ascii.patch --]
[-- Type: text/plain, Size: 1146 bytes --]

2.6.27-stable review patch. If anyone has any objections, please let us know.

------------------

From: Henrique de Moraes Holschuh <hmh@hmh.eng.br>

This issue was fixed indirectly in mainline by commit
0175d562a29ad052c510782c7e76bc63d5155b9b.

acpi_namespace_node's name.ascii field is four chars, and not NULL-
terminated except by pure luck. So, it cannot be used by sscanf() without
a length restriction.

This is the minimal fix for both stable 2.6.27 and 2.6.28.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Lin Ming <ming.m.lin@intel.com>
Cc: Len Brown <lenb@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
drivers/acpi/ec.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -759,9 +759,10 @@ acpi_ec_register_query_methods(acpi_hand
struct acpi_namespace_node *node = handle;
struct acpi_ec *ec = context;
int value = 0;
- if (sscanf(node->name.ascii, "_Q%x", &value) == 1) {
+
+ if (sscanf(node->name.ascii, "_Q%2x", &value) == 1)
acpi_ec_add_query_handler(ec, value, handle, NULL, NULL);
- }
+
return AE_OK;
}