lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 30 Aug 2011 13:30:40 +0200
From:	Thomas Renninger <trenn@...e.de>
To:	lenb@...nel.org
Cc:	eric.piel@...mplin-utc.net, jnelson-suse@...poni.net,
	devel@...ica.org, linux-acpi@...r.kernel.org,
	linux-kernel@...r.kernel.org, x86@...nel.org, hpa@...or.com,
	mchang@...e.com
Subject: [PATCH] ACPICA: Fix wrongly mapped acpi table header when overriding via initrd

From: Michael Chang <mchang@...e.com>

Fix the overriding ACPI table header do not override the existing ACPI
header thus the existing one is still in use. This caused a discrepency
of header and body, which would introdce a serios side effect that when
overriding DSDT, system might have error with "Unable to load the System
Description Tables" due to DSDT table verified failed.

Most field in ACPI table is static, but the length field is dyamically
changed and corresponds the new assembled *.aml size. We reserve the
ACPI data region using the overridden table size but attemps to map it
with existing ACPI table size introduced by above discrepency. It
would lead to remap fail during verifying DSDT able if length difference
cross a page boundary.

Signed-off-by: Michael Chang <mchang@...e.com>
---
 drivers/acpi/acpica/tbutils.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
index df85afe..2e797d9 100644
--- a/drivers/acpi/acpica/tbutils.c
+++ b/drivers/acpi/acpica/tbutils.c
@@ -511,9 +511,9 @@ acpi_tb_install_table(acpi_physical_address address,
 				   ACPI_CAST_PTR(void, address)));
 			acpi_os_unmap_memory(mapped_table,
 					     sizeof(struct acpi_table_header));
+			address = tmp_addr;
 			mapped_table = acpi_os_map_memory(address,
 					  sizeof(struct acpi_table_header));
-			address = tmp_addr;
 		}
 		flags = ACPI_TABLE_ORIGIN_MAPPED;
 		table_to_install = mapped_table;
-- 
1.7.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ