From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=DJuhhix8; spf=pass (domain: arm.com, ip: 40.107.5.88, mailfrom: krzysztof.koch@arm.com) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (EUR03-VE1-obe.outbound.protection.outlook.com [40.107.5.88]) by groups.io with SMTP; Thu, 15 Aug 2019 06:13:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SKWDf2dGutztx0ibC/f+O4UEzvCH1S6D9gnhcoSCKZw=; b=DJuhhix89vQBD1pibR0IFw0qoPOmVeuO0fDSvzoSVZ8GCKelqd1Y7C2VdVqubSLlq89orbh7pL8H+GWs5H5Ady/fCREXc8U4uIkt5V0nbRt7o8i8dn3G3HkW92CKkHBnwsI9Pk6BfvIs5q4SpJ4rBQOcUMRKxyNGNjn8qPoesqI= Received: from VI1PR08CA0177.eurprd08.prod.outlook.com (2603:10a6:800:d1::31) by VE1PR08MB4957.eurprd08.prod.outlook.com (2603:10a6:803:110::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.18; Thu, 15 Aug 2019 13:12:59 +0000 Received: from DB5EUR03FT020.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::206) by VI1PR08CA0177.outlook.office365.com (2603:10a6:800:d1::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2157.16 via Frontend Transport; Thu, 15 Aug 2019 13:12:59 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT020.mail.protection.outlook.com (10.152.20.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2178.16 via Frontend Transport; Thu, 15 Aug 2019 13:12:57 +0000 Received: ("Tessian outbound 40a263b748b4:v26"); Thu, 15 Aug 2019 13:12:57 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 055b65c859299a90 X-CR-MTA-TID: 64aa7808 Received: from f3976feeba6a.1 (cr-mta-lb-1.cr-mta-net [104.47.13.58]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 40E0421E-AEBD-4CF3-AC6F-B3B9B315C7E3.1; Thu, 15 Aug 2019 13:12:57 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2058.outbound.protection.outlook.com [104.47.13.58]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f3976feeba6a.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384); Thu, 15 Aug 2019 13:12:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CpDH0c1xtZI6JAW8f+SLEaEn9pkhIRx5yZRmofmt4S06NJ8kv567a6T9x5dLOI/JRXNlNe0pA48pXycq3stugbRpJudxKv2/2wugtucToiWjebEff/uYz1bdlwO1h+6tNIQirCgu9bnZpsryFTKcQgglcgInCklRkEK+OHA8ipi2n+6JENe+7YTBRYZLdY4CMfOac2jtSimBMa3gI805nNgk/GUmC+v0nKJZq7qEyjA5AWcZpkKK/q3xklwo8+0xFbSIcwyQFZKMt38qOBkdecmzj2r4iHC0UxUqJ+es0W00p4282UaH9hWaYnf3YrNAQK86xU6QL9JRHk5/apz2xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SKWDf2dGutztx0ibC/f+O4UEzvCH1S6D9gnhcoSCKZw=; b=XGXkNkr9vzqa96NqQAux99XtiEMO2QEVsNisMdMoSu64cLEYl1E71BIx2E0ElPUR/UztOIcuDIMprA8vGSwaFY0JE8/Do+Pq47kKA+gPXX2VaTi19+ebjA0rl/7vyCGasUC6xWp/RLw3TeDUz/lB8XjxDQEuzEaV1Zvc4KTw4FeEpX0cRqq/OeKqnhuQ0XyGA7e1Cwq7bi6u0rp5u2QqsRE79BRhnGIqSn3lPNNmkcphNd4CA/RKI+knMsX3WuBpWCByvT9E7RPhfs49SWylODw4p5HkFq3nxmNtoC1SYxiq7M+ZmJeyvH/mJ41LDT45e8bjO1rx7FcwHiCBiwKZAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip is 40.67.248.234) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=temperror action=none header.from=arm.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SKWDf2dGutztx0ibC/f+O4UEzvCH1S6D9gnhcoSCKZw=; b=DJuhhix89vQBD1pibR0IFw0qoPOmVeuO0fDSvzoSVZ8GCKelqd1Y7C2VdVqubSLlq89orbh7pL8H+GWs5H5Ady/fCREXc8U4uIkt5V0nbRt7o8i8dn3G3HkW92CKkHBnwsI9Pk6BfvIs5q4SpJ4rBQOcUMRKxyNGNjn8qPoesqI= Received: from VI1PR0802CA0016.eurprd08.prod.outlook.com (2603:10a6:800:aa::26) by VE1PR08MB4960.eurprd08.prod.outlook.com (2603:10a6:803:110::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.15; Thu, 15 Aug 2019 13:12:54 +0000 Received: from DB5EUR03FT050.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::203) by VI1PR0802CA0016.outlook.office365.com (2603:10a6:800:aa::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2178.16 via Frontend Transport; Thu, 15 Aug 2019 13:12:54 +0000 Authentication-Results-Original: spf=temperror (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from nebula.arm.com (40.67.248.234) by DB5EUR03FT050.mail.protection.outlook.com (10.152.21.128) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.2178.16 via Frontend Transport; Thu, 15 Aug 2019 13:12:53 +0000 Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1415.2; Thu, 15 Aug 2019 13:11:36 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1415.2; Thu, 15 Aug 2019 13:11:36 +0000 Received: from E119924.Arm.com (10.1.199.124) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.1415.2 via Frontend Transport; Thu, 15 Aug 2019 13:11:35 +0000 From: "Krzysztof Koch" To: CC: , , , , , Subject: [PATCH v1 07/11] ShellPkg: acpiview: MADT: Validate global pointers before use Date: Thu, 15 Aug 2019 14:11:17 +0100 Message-ID: <20190815131121.52644-8-krzysztof.koch@arm.com> X-Mailer: git-send-email 2.16.2.windows.1 In-Reply-To: <20190815131121.52644-1-krzysztof.koch@arm.com> References: <20190815131121.52644-1-krzysztof.koch@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;IPV:NLI;CTRY:IE;EFV:NLI;SFV:NSPM;SFS:(10009020)(4636009)(376002)(346002)(136003)(396003)(39860400002)(2980300002)(189003)(199004)(54906003)(44832011)(126002)(11346002)(76176011)(51416003)(476003)(2616005)(486006)(446003)(7696005)(478600001)(36756003)(316002)(16586007)(81156014)(81166006)(336012)(63370400001)(6916009)(4326008)(63350400001)(426003)(47776003)(53416004)(50226002)(8936002)(26005)(2351001)(70586007)(70206006)(53936002)(5660300002)(186003)(86362001)(48376002)(356004)(6666004)(50466002)(305945005)(15650500001)(8676002)(2906002)(1076003);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB4960;H:nebula.arm.com;FPR:;SPF:TempError;LANG:en;PTR:InfoDomainNonexistent;MX:1;A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b20a90f2-501a-4f75-08c0-08d721824aad X-Microsoft-Antispam-Untrusted: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328);SRVR:VE1PR08MB4960; X-MS-TrafficTypeDiagnostic: VE1PR08MB4960:|VE1PR08MB4957: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true X-MS-Oob-TLC-OOBClassifiers: OLM:5797;OLM:5797; X-Forefront-PRVS: 01304918F3 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info-Original: 4Fj2bJyOas26CtV1fEp5dx0OUKnW+r6xFteTquB/vXgaZLN9PYTttec78LHUzQ5eu/teQzvfFJsCrt080PTkdIioB+4miULeaC0pJBNxvXOoQGqVt3PXQU+ldMnoxSjDlPj0KB9kSvxX99lXosbjZyDnWAEN3KhefJjIuN+LF5Mk0wacLJnXosKp+Q6+CeEyWfGPe3u7jXrJpxq0zez1+ZwCws8jpAhnjbF7h4j7fCN91q3g9SmfE/hhIHzDyzM7BhjI22wKiypMvjKzdgXlPgyGQbPOeCFckkk4eGUykRMX/yXjVL8VANEFFO6jWg6zJ2Jg8EvTFtK2qXkaxiAs6UpYLMCWnPjFVoF/Y+IkdO8qogch/sLVrm0WziUZeJbkSQhwkNV0ZBl2qeJ7oEF9BOIe6upxhpkYpkl+duXZ9So= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4960 Original-Authentication-Results: spf=temperror (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=temperror action=none header.from=arm.com; Return-Path: Krzysztof.Koch@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT020.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123;IPV:CAL;SCL:-1;CTRY:IE;EFV:NLI;SFV:NSPM;SFS:(10009020)(4636009)(396003)(136003)(346002)(39860400002)(376002)(2980300002)(199004)(189003)(2906002)(305945005)(53416004)(316002)(50226002)(48376002)(186003)(4326008)(50466002)(26005)(22756006)(86362001)(26826003)(478600001)(16586007)(1076003)(36756003)(63350400001)(51416003)(7696005)(81156014)(44832011)(8676002)(76130400001)(76176011)(63370400001)(81166006)(426003)(336012)(5660300002)(486006)(6666004)(47776003)(15650500001)(8936002)(2351001)(11346002)(476003)(70206006)(2616005)(54906003)(126002)(70586007)(6916009)(446003);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB4957;H:64aa7808-outbound-1.mta.getcheckrecipient.com;FPR:;SPF:TempError;LANG:en;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;A:1;MX:1; X-MS-Office365-Filtering-Correlation-Id-Prvs: 81f5609b-c7a4-4c93-cba8-08d7218247de X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(710020)(711020)(4605104)(1401327)(2017052603328);SRVR:VE1PR08MB4957; NoDisclaimer: True X-Forefront-PRVS: 01304918F3 X-Microsoft-Antispam-Message-Info: gQd2k/KYARJRfs6giHHsFddmqUwC+puDs1phqiigI07ABiJwhzJ+gpgxxaaO2jdEobwWCr9QcjRVCwDJYgXnqNZEeZfrKJEV84IcJbCjPfWO+DRKe2wJz6u+wD0Q48U0qR1FD4foVZU3vH11RKsOWoNPNNIgPXPd6Ijs7LeFmUH0aLO/AZgh7RRN48CfsI21K1gRQ8fDIkR7i+p8Fm0XkpMEt4hh4kVGDXVIo+zL8hcfPZLuSY0r/4ehNE0fTaTOW9t3b6TRdKdwg1rMk6hbxuWFcd4+WHpy1RufmSI+YFhx7M0zIvyRhIETszqUBbw1+uRvfA2RW+GVUSrvllKLdrjAz/3hodzz3J2Pebrow+wDYXeUqwzvu60ecckZeZrNtXiyph+Nrt4YY5ej6VhXuWG4C31UogsjHqFGOEMz72U= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2019 13:12:57.7973 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b20a90f2-501a-4f75-08c0-08d721824aad X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4957 Content-Type: text/plain Check if the MadtInterruptControllerType and MadtInterruptControllerLength pointers have been successfully updated before they are used for further table parsing. Signed-off-by: Krzysztof Koch --- Notes: v1: - Test against NULL pointers [Krzysztof] ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c index 90bdafea1970db522e8ed96de7c6e986cdaca5ba..438905cb24f58b8b82e8fe61280e72f765d578d8 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c @@ -260,6 +260,19 @@ ParseAcpiMadt ( PARSER_PARAMS (MadtInterruptControllerHeaderParser) ); + // Check if the values used to control the parsing logic have been + // successfully read. + if ((MadtInterruptControllerType == NULL) || + (MadtInterruptControllerLength == NULL)) { + IncrementErrorCount (); + Print ( + L"ERROR: Insufficient remaining table buffer length to read the " \ + L"Interrupt Controller Structure header. Length = %d.\n", + AcpiTableLength - Offset + ); + return; + } + // Make sure forward progress is made. if (*MadtInterruptControllerLength < 2) { IncrementErrorCount (); -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'