From patchwork Mon Mar 8 16:07:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1449198 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-weidmueller-onmicrosoft-com header.b=nFzBOuoY; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DvNY05lWJz9sWT for ; Tue, 9 Mar 2021 03:08:04 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8752B82652; Mon, 8 Mar 2021 17:07:58 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.b="nFzBOuoY"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3C57582699; Mon, 8 Mar 2021 17:07:56 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02on061c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe06::61c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4038E825F4 for ; Mon, 8 Mar 2021 17:07:53 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=stefan.herbrechtsmeier-oss@weidmueller.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SscXvhCOMkf4YsnRfBH37vftZrd39DjrTNEsE+FsMBHu2E8Sv4Qu8L3pZ9NtlXnQGxaBOxR+3CK+W8fg+E6j4JeQuTjeBYJLQIRLMDA08iCuKHIFvI0X9EIDPBPVOnpdI5evmjlxc0zQRfPhRX5ggxAZ4s5LCMbslSJ1skUgrh6BtV5L3mtuOPL2QpHo5xJ6nKz6KdziyEypty62ykSPeoNJbjS+kDZhP4W0gYg/lvFoxRZwCSmDyI9nN0Y2OpHZXZS8MI2rfYT5U8btddRj37KCXv37S5914S4XANuNqW6xxKJHqO3H41fjAjUBtlQ+cLPmQzY6TtYixEKGP4x4GA== 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=BEBUjGXl9zg0yqBw2TQrAH87CvVdcgF96bI9iyUus9Q=; b=ADo57hh+VBtNQbxWn7HDUKaOnU48AoJCz/w2wUoCM3zQWNcq1gEuCvAxH6leBMtNRwqnKt2W0rcQt2z3RIyut+3hlG7YIOXn0SDJM9cNpLkefDslZWjuI/MCKJt8xoHKlecZvftOQg0Qp+8/B3J3Sh/X0xbKqH2ti64+KHnq5jJ2Z424bFEQCKhGiQEqn//mLevxWEmJHfF6GBGJoc19e8FWXModde8Ej+MOjRcZQD8Y9QfRtGCq9hEb8U3nhq4v6bbHJS1NT2nrRjymFch7KgrPdls4JX7KbcgqkG3vcP/bkXq772GFRf33rd2P8ch9p3nKlkqrid/vW7mGKPtMNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=weidmueller.onmicrosoft.com; s=selector1-weidmueller-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BEBUjGXl9zg0yqBw2TQrAH87CvVdcgF96bI9iyUus9Q=; b=nFzBOuoYIDAQSnuk7hlskoBiS0abmHY0DRstQinEEIO3nNUQbomIdEwgC1d4ybhsawJAuGLKraIbNYjdz4u8xUgUHuVrWwHpqpJEKVRXWvEsDNSAAara1FIJpiuImj8GmTlzB7R1rBxKTj8XT0F6S+FoPwj5Y5yzDW8Fye/yNb0= Authentication-Results: lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=none action=none header.from=weidmueller.com; Received: from AM0PR08MB5201.eurprd08.prod.outlook.com (2603:10a6:208:15b::28) by AM0PR08MB5491.eurprd08.prod.outlook.com (2603:10a6:208:189::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.20; Mon, 8 Mar 2021 16:07:51 +0000 Received: from AM0PR08MB5201.eurprd08.prod.outlook.com ([fe80::b0c8:b583:1bcf:93f0]) by AM0PR08MB5201.eurprd08.prod.outlook.com ([fe80::b0c8:b583:1bcf:93f0%3]) with mapi id 15.20.3890.038; Mon, 8 Mar 2021 16:07:51 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Gary Bisson , Heinrich Schuchardt , Rasmus Villemoes , Simon Glass Subject: [PATCH] disk: gpt: verify alternate LBA points to last usable LBA Date: Mon, 8 Mar 2021 16:07:11 +0000 Message-Id: <20210308160712.75779-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.20.1 X-Originating-IP: [94.134.181.55] X-ClientProxiedBy: AM3PR05CA0121.eurprd05.prod.outlook.com (2603:10a6:207:2::23) To AM0PR08MB5201.eurprd08.prod.outlook.com (2603:10a6:208:15b::28) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (94.134.181.55) by AM3PR05CA0121.eurprd05.prod.outlook.com (2603:10a6:207:2::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Mon, 8 Mar 2021 16:07:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c98d9975-f010-4820-3c83-08d8e24c5336 X-MS-TrafficTypeDiagnostic: AM0PR08MB5491: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:198; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Xiei4Y37L9a43zNE8UqMk0DFTL8qabrc5iRz97lr/AJo/UJMTBM73QtZRGqG13t11D+9G7vBK6M4Px6P0gvSlnjFCC3lQ6TA0gRamFbRbEfX0gNWf+rfsheDN9TbH1Z0WKdSPQ5oHbYKMAmq6ADVNPvfokV4VxfV26oG1J1U2n7n36FU8XUbCwRhRWCNnCLI7DNsd++R4fVV6OaTXRT3AwC4qNXy4c+zrFkv3vhrqHSyKkDRhHgwVrqmnvFV6qwmab8LXndxtE+MBULn4ysKTl8A6/kVABv8m26Lry4JtsYQgX0gWwW8kkCBHynR1eVo8iyHKP0rSODh1uyKgBJ5bOtMkGyrczhav2AVB6U+QrodNpZAAzGLJDNCR15yKai5OWOsFxf9VUa0paJxgnSUC65nm1ST8EeBBnyChBaxaXePBLbZgoMipWChAF2V8c92VnNSiS5PQDTp5j0ME0MbLAilxvnDuWitCF/dIrwzciWYNGX947rdrRCUt3YZgSfqx3pLPS8pjhZLsCSp1m2I8KHKBK6BvA5wXDFLtxgdvQW4YBl/pR6s95ErOwX4K6+x9I5Jeu8Rf6KB6cKDHl4lYQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR08MB5201.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(396003)(366004)(39860400002)(136003)(478600001)(8936002)(69590400012)(86362001)(66556008)(66946007)(66476007)(186003)(4326008)(26005)(16526019)(316002)(83380400001)(2906002)(6916009)(2616005)(956004)(52116002)(8676002)(6666004)(36756003)(6506007)(1076003)(54906003)(5660300002)(6486002)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Dk8fAoqQY8Znu3nnYedeRlYqTTcNqmZTjGLZQr23biU+LQCu/yXCMPXVCodRC5BhNNTCxrPeSMJ1sbP++UxKInQm0DcAAmbdPjmwxVzJjunEmrGg2B2QItf61ETIpVLfXUpWDurP3QXFpSQfJeD0MZb9srwnSRyTcJYJwxJvd85jlEerbCx4KfXXNKsdrBSyn4VDzX9Z3KjqkgBXm8/d+A7WObldApl/JAZcoJ/V/J/0U86AEw/RWKHQUCjx9ieVH2HOgf01r2/eCx27wqD9XtCSpUna65fynrZb86WqLOM3Jw1m5xeaCW3wTA0SqaOm8KcCjhxzYTp08zUlBt+ZAIdwjvhDt3LqqqjGcwSKnD7r7F/W5HES+y4KhqjvbzLuJEYT9Tt3UB2wQ1VleWcgXckThURsWsDMyCmXPB/2+cyW2OhoUIoPyvSEdRqBgTEF5k64CKz4dI54LBunRsnmPhdRmT4Jb+iDLEcfuSy4P3kPJm2+rIKYHpn8lM4MrWvt2wuCvBabeOG1hWKJRFGRTY4ptuaAv+zGvePNnCckVu3GOaPiWdjyh0L4q/uqfuqx8HfwRzG3kdOvQMzOT7kvZFscvT5dsxkITMKaUTZO+cyncq7d+d9bGMRlqGr5diBOtD1hp6P2y8fzlr+i9nLsi0bjmyIUVdQTDCsi46fuqBWDWS5dz7JyUKXYV+LquSBYk5jWbxPDzXMOvpvanNW2tijjVNzYC8jdCg70zfHZ+xCVVktwVCd0gjlFdkvsSxqWiTCIoSpPZmVRkAYbBX2TQpD0+r1zSGFgGY6Lf3NzaaR/HS0nzlw7aux8k/Ao3uZtDRrKjL6g3m/6lxGk9rhYnB407ud7S+VDrmegaIhttGDZvC+hBHxXijMYoA61gwlxuQO6YPKVHO6l4lr6+fovhHMWXoFzX1z9oy1eNeuU9x8xbBQ5/70dwpYuZMnDqypFcYO6FW4xvVL+1BzjALawNa3kHuJSSFAWDqcwUjZZQhRAIOa0AdJshgFPLoV6dExeoHfFG71eUVWIcvoKBkJCH84p1qZ4I6nNk3EivkN3GHizMfaWVQPe1cyT2pfROG7Rxpn22gjtVGqh5FK6v1SUKOyth5r3f7wLAlMbc1RvI1SulSkajK2/taDyUYu9rzlwu1zKjuOOAR8lmc7l86Di2VgeNf6hgPDx9s2sNfrh7RyHdrTEpuqQX3JGeqgBWiWlgUkxlLAEHFp/Xz43EhnZmHpLqPizVHm282jZWJJk+SQXTnVnTg9V6h+cyGtMz1hlBS0jXTPjvPulpj3EBwYFWNqNTCtN79YSVFvT+PCUX6te4qr8PvaKpBP3E42RH3N1 X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: c98d9975-f010-4820-3c83-08d8e24c5336 X-MS-Exchange-CrossTenant-AuthSource: AM0PR08MB5201.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2021 16:07:51.7818 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BjYzxOwe1cxvVaZQY4mTgGvN4VPwZ39LgYcx/CaoNmCjIge+3XERzi+Po4Fl5iWxIEUd05jKAwebhYxtHY6erA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5491 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean From: Stefan Herbrechtsmeier The gpt command require the GPT backup header at the standard location at the end of the device. Check the alternate LBA value before reading the GPT backup header from the last usable LBA of the device. Signed-off-by: Stefan Herbrechtsmeier Reviewed-by: Heinrich Schuchardt --- disk/part_efi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/disk/part_efi.c b/disk/part_efi.c index e5636ea7e6..0fb7ff0b6b 100644 --- a/disk/part_efi.c +++ b/disk/part_efi.c @@ -692,6 +692,15 @@ int gpt_verify_headers(struct blk_desc *dev_desc, gpt_header *gpt_head, /* Free pte before allocating again */ free(*gpt_pte); + /* + * Check that the alternate_lba entry points to the last LBA + */ + if (le64_to_cpu(gpt_head->alternate_lba) != (dev_desc->lba - 1)) { + printf("%s: *** ERROR: Misplaced Backup GPT ***\n", + __func__); + return -1; + } + if (is_gpt_valid(dev_desc, (dev_desc->lba - 1), gpt_head, gpt_pte) != 1) { printf("%s: *** ERROR: Invalid Backup GPT ***\n",