From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-3878504-1523241513-2-2325041076957644047 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.25, MAILING_LIST_MULTI -1, RCVD_IN_DNSWL_HI -5, T_RP_MATCHES_RCVD -0.01, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='US', FromHeader='com', MailFrom='org', XOriginatingCountry='US' X-Spam-charsets: plain='iso-8859-1' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: stable-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=fm2; t= 1523241513; b=cXU+uUgefdZuJ44cmB6z85584FWSsiNViNhtgE/GcfFwJn/UIF U9poQwES26MV5ylKWQv3UF2dFtdKX63/u4R6olANUFN1NAm2XdrR09WhkInvrjvx mpXBEEjS50WOPO2PaFO4qpSSm3HzvP31bqInSqwvrHsX6fm29qBqUZ1RNWLYilT9 vunEKn37NvxI0G/xlW950c5rs3Le3519YzXTWztIZIWYwXnZPpuk6/3jGJ6BhBgk Fh+j9zzVcWM1r4KxTVCSm69jq3rFPsUe9rlxs4ACRq2oxqvgj6OHkyd049IdkA3O Jmd62JD3HpjeL82f2+uhRRDPtE56TWmpNKYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:date:message-id :references:in-reply-to:content-type:content-transfer-encoding :mime-version:sender:list-id; s=fm2; t=1523241513; bh=87RKQJ7sPr Fs5uM8CuiE/7Em3Rdv4FmUycAm3Od3D4E=; b=dUo8YV6Ye0WvoW7DTt4WnC40RP 5byHC/OFoq8DGmFzXK2328ZtGlNeDi9zDb0ZU2suV0Obv0M/AWE2VZeZg8bp4EX2 ZtvXKqDFovH+sm8Umad2+/e5XeQvcH00xNwML+wi0uDDsjwjHUZ8w77py7ajiu5M RXmT/36Njjp/aM8cEGkAvDDTIMGH5I7EjGKFPRcTrb5jDEzbsJWbRKwXzlJP0dKS azMm3/k1tEeHEVpJRLToo9E426wk0XPnBHkgcfLs6j4ZBSf6USJZFrYQlQ9dFVw1 uo7GAry99FeXTn0VHh5ouKc5asDtjLI0Ll0mlysO8EqUyZSsVYhA5V3sI/Kg== ARC-Authentication-Results: i=1; mx6.messagingengine.com; arc=none (no signatures found); dkim=pass (1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=iayCRrUY x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=pass (p=reject,has-list-id=yes,d=none) header.from=microsoft.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=stable-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=microsoft.com header.result=pass header_is_org_domain=yes; x-vs=clean score=-100 state=0 Authentication-Results: mx6.messagingengine.com; arc=none (no signatures found); dkim=pass (1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=iayCRrUY x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=pass (p=reject,has-list-id=yes,d=none) header.from=microsoft.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=stable-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=microsoft.com header.result=pass header_is_org_domain=yes; x-vs=clean score=-100 state=0 X-ME-VSCategory: clean X-CM-Envelope: MS4wfMPKlV4X7S8vV76gzBMg9gOaiGZI9jRYi8RaTxvKCt1T4aQ8LIrq7Xfcj3m1lcImfxW2Loa+QsIGkUaT82kasruWxG1O31ByS8BB4frvVPFOiNCnaITr smOXRJ0nzOiQJw0Ci1kOgIXDQ7dBxgGgooy/wmf77jZj4yuslre+kbFaZNyklsgADLk25OFxhTDiwV1Y77M3UR7sLcTX3o6KbpPxamVtErFijFywSXoEEFBo X-CM-Analysis: v=2.3 cv=FKU1Odgs c=1 sm=1 tr=0 a=UK1r566ZdBxH71SXbqIOeA==:117 a=UK1r566ZdBxH71SXbqIOeA==:17 a=wRwT6uffUbIA:10 a=t_PdEiP4ckcA:10 a=mw6kJ3eo-EIA:10 a=8nJEP1OIZ-IA:10 a=xqWC_Br6kY4A:10 a=Kd1tUaAdevIA:10 a=Lf-vpJhqX20A:10 a=QyXUC8HyAAAA:8 a=NEAV23lmAAAA:8 a=yMhMjlubAAAA:8 a=WVfum9TogFa7DQqzukUA:9 a=wPNLvfGTeEIA:10 X-ME-CMScore: 0 X-ME-CMCategory: none Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757997AbeDICib (ORCPT ); Sun, 8 Apr 2018 22:38:31 -0400 Received: from mail-cys01nam02on0094.outbound.protection.outlook.com ([104.47.37.94]:22752 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755453AbeDIA1a (ORCPT ); Sun, 8 Apr 2018 20:27:30 -0400 From: Sasha Levin To: "stable@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: Bob Moore , Lv Zheng , "Rafael J . Wysocki" , Sasha Levin Subject: [PATCH AUTOSEL for 4.9 042/293] ACPICA: Disassembler: Abort on an invalid/unknown AML opcode Thread-Topic: [PATCH AUTOSEL for 4.9 042/293] ACPICA: Disassembler: Abort on an invalid/unknown AML opcode Thread-Index: AQHTz5j3YGrru3HpwEayF524f6lgWA== Date: Mon, 9 Apr 2018 00:23:22 +0000 Message-ID: <20180409002239.163177-42-alexander.levin@microsoft.com> References: <20180409002239.163177-1-alexander.levin@microsoft.com> In-Reply-To: <20180409002239.163177-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DM5PR2101MB1031;7:5pr6+slrhmgAaUGpscs/ND9+queaw5Vnfx722h9+n6mg3tKVBo8QBmd+opKr5BBBj+PvCCDC7tMIKcZcf2gV5awvoo3OXhDSB6zCAbvfU8Rnt4gM1G8zImxlr9Wuy4S1dE4rX3RifTB5nvMztrtSH1fi8FLPklnUue3DxrKvdi916lzi9d2tLCzoCGZsbuOLkghDp6KQky1yLfm7W8G2KfbxSSQe4cUSqke1Tn5Tb6jE4JfY8C+p6jzpm+5Gm5u4;20:yfFea5dZQPmEpdIJ1OtEujegk5hJLe+dV7q5tz1DFxr2qUBmJVHHGiW/x26iwL10wlIlKmrt7eIyYBvwx1xhfw6W/Xj4VpHwOkp7dAT2L+3QWO2jRwkXvnASu0dgzSrIkLpZ7NhRaENdrR5h8XFA5+NWHZXP84BW/cy0R/kYric= x-ms-office365-filtering-ht: Tenant X-MS-Office365-Filtering-Correlation-Id: 9938760d-e59e-4cf4-04f1-08d59db0aa69 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7193020);SRVR:DM5PR2101MB1031; x-ms-traffictypediagnostic: DM5PR2101MB1031: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(166708455590820)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(61425038)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(61426038)(61427038)(6041310)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011);SRVR:DM5PR2101MB1031;BCL:0;PCL:0;RULEID:;SRVR:DM5PR2101MB1031; x-forefront-prvs: 0637FCE711 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(376002)(366004)(39380400002)(346002)(39860400002)(189003)(199004)(2900100001)(10290500003)(99286004)(76176011)(14454004)(966005)(7736002)(11346002)(26005)(86612001)(72206003)(478600001)(36756003)(106356001)(66066001)(2616005)(186003)(575784001)(22452003)(86362001)(68736007)(305945005)(54906003)(102836004)(486006)(59450400001)(110136005)(316002)(6506007)(446003)(107886003)(53936002)(4326008)(105586002)(6306002)(6436002)(6486002)(476003)(6512007)(5660300001)(5250100002)(25786009)(3846002)(6116002)(1076002)(97736004)(3280700002)(2501003)(2906002)(81156014)(8676002)(10090500001)(81166006)(8936002)(3660700001)(22906009)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR2101MB1031;H:DM5PR2101MB1032.namprd21.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; x-microsoft-antispam-message-info: RtWsvQr1KX5Fo6ST1GgjUWdkxnLW0JnUQc9rWsd5KMPy8ZdTfdcgJ+LesAYaEG+mIWZTMSbyWn8rHys2tHTMfmTiIMcHcdayEJcHaGUNYiaiB16QzVl4bU5K+BPWI0+SFGm45jhe1XuLxLM0g6wJu/0/evcs23FWHd6xnlS4o1+rQM5Kh7GHsNjk85XVZq+9hyY/eC/xJN8hJudJTbUpChpjbn9zrJmIdsNg6r15sxsNVbL1d+DYxFSLIrlvSCqic4EiGf6+0BlSTtAgrMNSix2xI8B3HZNxBMUX0TrlpdA0pZrrGDrMwEr0jaI46XDhDO1eB9mK6oVBQThGpxqqPuI0x9CltbAl+bxtgC6oBQv3TV92X0qEgqqsUevgrwChcM0svfjln8WhaXi1DGQ4G9bv7g6FN+l4ManrLzeThM0= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9938760d-e59e-4cf4-04f1-08d59db0aa69 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2018 00:23:22.6905 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB1031 Sender: stable-owner@vger.kernel.org X-Mailing-List: stable@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: From: Bob Moore [ Upstream commit 6f0527b77d9e0129dd8e50945b0d610ed943d6b2 ] ACPICA commit ed0389cb11a61e63c568ac1f67948fc6a7bd1aeb An invalid opcode indicates something seriously wrong with the input AML file. The AML parser is immediately confused and lost, causing the resulting parse tree to be ill-formed. The actual disassembly can then cause numerous unrelated errors and faults. This change aborts the disassembly upon discovery of such an opcode during the AML parse phase. Link: https://github.com/acpica/acpica/commit/ed0389cb Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin --- drivers/acpi/acpica/psobject.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/acpi/acpica/psobject.c b/drivers/acpi/acpica/psobject.= c index db0e90342e82..ac2e8dfdf74e 100644 --- a/drivers/acpi/acpica/psobject.c +++ b/drivers/acpi/acpica/psobject.c @@ -121,6 +121,9 @@ static acpi_status acpi_ps_get_aml_opcode(struct acpi_w= alk_state *walk_state) (u32)(aml_offset + sizeof(struct acpi_table_header))); =20 + ACPI_ERROR((AE_INFO, + "Aborting disassembly, AML byte code is corrupt")); + /* Dump the context surrounding the invalid opcode */ =20 acpi_ut_dump_buffer(((u8 *)walk_state->parser_state. @@ -129,6 +132,14 @@ static acpi_status acpi_ps_get_aml_opcode(struct acpi_= walk_state *walk_state) sizeof(struct acpi_table_header) - 16)); acpi_os_printf(" */\n"); + + /* + * Just abort the disassembly, cannot continue because the + * parser is essentially lost. The disassembler can then + * randomly fail because an ill-constructed parse tree + * can result. + */ + return_ACPI_STATUS(AE_AML_BAD_OPCODE); #endif } =20 @@ -293,6 +304,9 @@ acpi_ps_create_op(struct acpi_walk_state *walk_state, if (status =3D=3D AE_CTRL_PARSE_CONTINUE) { return_ACPI_STATUS(AE_CTRL_PARSE_CONTINUE); } + if (ACPI_FAILURE(status)) { + return_ACPI_STATUS(status); + } =20 /* Create Op structure and append to parent's argument list */ =20 --=20 2.15.1