From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1nUjri-00040H-PO for mharc-grub-devel@gnu.org; Thu, 17 Mar 2022 02:44:07 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38492) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUjrf-0003ve-4T for grub-devel@gnu.org; Thu, 17 Mar 2022 02:44:03 -0400 Received: from de-smtp-delivery-102.mimecast.com ([194.104.109.102]:31220) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nUjrb-0007yV-GG for grub-devel@gnu.org; Thu, 17 Mar 2022 02:44:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1647499437; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KKjH5esk8yS0repf9aN/31hqI9+SlcYEI4wj9HZnVqg=; b=hPTX4DPMRkxMGWmFKlGnReKEIWDliMiIVwIwDaF3OdNE4SM6LjRK3FhtXcR9UsKDLCR2Th uVFXiFn9zaKO1sHe2Ad1CRkk2gLXqYE5oqzW7Ic6GtccGJjdAHIu77UkAIa2ttcy733iHJ UWiCe/CYWlVyaf59rypuZ0DdEiVXwCA= Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2051.outbound.protection.outlook.com [104.47.5.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-27-LPXRnUlzP0OnOc3F--JXXQ-2; Thu, 17 Mar 2022 07:43:56 +0100 X-MC-Unique: LPXRnUlzP0OnOc3F--JXXQ-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fh70Zo0pyrz+g2diTamirTE9Ma5LvsaoDSbd5WM1yRlszfB+H4lWKJsRg08ecItNcfPWMWn16vqkaGjceKMe65sEC0Ri1pJcxGWz6m8sQ/J+4HmhZKe8VWgSkxt4TROdYXD9n6SamGVtnzWzPwsrUq70cV9GkEBVS29QgvZuRo4sffqlfbJPq+ikLQRCJ33ULJTAIEL5icxbrnKH7sLc82myvWOa+JN4IE8R/4WOsy+8nuH4P+DCCYjb+BBCYSphYFGXPpmr/JMJ+SC0wrWvzCTMj8COFNcDt0U0m9nprtpPaWpE1PHzhEwgVRswEIV+9NkfIQgm/67G+agmSQu/vw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/ybbWpX3D/bGEH7+wroXqhKKXuFfEdH2MTkBTer7rSs=; b=VSSTX7OKADdyNHz2eBdwE76aNAIf8kehAgRJ6PVQAFcbiPQfTrdi/+TAX2vsAYIYwz2pLd/jDFeE+7Q3VPMkJyX8XeHzBswLEW7qy4PGdnhtRpLa/dW5A3ndmn4qUgErzekye1V9j7/LknHR2wM23T+iiqaKqDdpyH+SjELYg2pldh6cY8meA4Re0HvtS7zaoHyxRCE3E+ufrNjXTxwGSliCTu47qmvZaaOFUczGFLCdjYug6zZzUURFFp0X94LfktfHtwIe32L6dkdy7NcoU/jr606x8aV3tjmWzQGNnWtr0Rys5m3EcEM0i+muvFhSUNqVhthQkk9vKgdAGefz5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from DU2PR04MB9081.eurprd04.prod.outlook.com (2603:10a6:10:2f0::13) by AM6PR0402MB3606.eurprd04.prod.outlook.com (2603:10a6:209:8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5061.28; Thu, 17 Mar 2022 06:43:55 +0000 Received: from DU2PR04MB9081.eurprd04.prod.outlook.com ([fe80::2d29:445:cc37:a97f]) by DU2PR04MB9081.eurprd04.prod.outlook.com ([fe80::2d29:445:cc37:a97f%5]) with mapi id 15.20.5061.022; Thu, 17 Mar 2022 06:43:55 +0000 From: Michael Chang To: grub-devel@gnu.org Subject: [PATCH 1/3] mkimage: Fix dangling pointer may be used error Date: Thu, 17 Mar 2022 14:43:40 +0800 Message-ID: <20220317064342.25671-2-mchang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220317064342.25671-1-mchang@suse.com> References: <20220317064342.25671-1-mchang@suse.com> Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-ClientProxiedBy: HK2PR03CA0045.apcprd03.prod.outlook.com (2603:1096:202:17::15) To DU2PR04MB9081.eurprd04.prod.outlook.com (2603:10a6:10:2f0::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2cf9cef5-79d9-4921-2ecd-08da07e181c7 X-MS-TrafficTypeDiagnostic: AM6PR0402MB3606:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: y0ZIJF6Zs/ernXXtVYep6zv8VPncs7QPMCtKc91tlleV4cArk+XaHxcwhlpWqomUrhSUeToiKLMzgXsQbzO0EumsiqSefYhW2O+OsUjcfwU9f+OJjn/JcdxCTk4Af37MhLe6kgRY54jT6SoyK/0pPW9/BboY/f5QHijFjBhtQ/Meu1k5RkB03yRNtjJq9BuhWkhFp0pOzCX5UNxX4hznBE58BdsBzFJCIhg25Ye4IBL5BDnlWLjWxdoQSl4zOiskkZSKO9TZSfchIm2X7X5D+6fcR+EIPJAHUyEa1HFFYNTz0vugxOLUFc6xJE+GgSU+EdDvBMdiac8Qk87VxJ+/Tt2I9fZUqAdWYbVtd0JZgnMYw2rzlSzYoPsq5E+rc6APcK1bCUe6JWrJYYEIKWsSKz38WIraMokYqZFFRTfk7RV1Gs75iG3D5DsrdASc+yO3ohJbfn/n23cWAUgoWcGIpzL361zwHvkcArqeTYTXN5hAagM05aIsVysP/8LPOBpPUAWLG4nJRKZEymgrS7vutClyZjjZJD17A3g4q5W4ynK4Ro//jcNHQRsYCX6gSjKZn9JFB8W+uGZg76ovbfHtrO6OseasgC7awMfFug2cHO1/ATajix91U8AK86GHVHbqQDvWro3mhP0wktwzwa21KQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB9081.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(6916009)(316002)(36756003)(508600001)(8936002)(66476007)(6486002)(5660300002)(2906002)(66946007)(38100700002)(8676002)(66556008)(86362001)(2616005)(6666004)(1076003)(6512007)(6506007)(83380400001)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5vcvs8wQWak/CjUYBHkfRR2tuX5bkXLZhDbT0637oBKoLFCpb57yx0BvDeM+?= =?us-ascii?Q?eaOnZqt0GQ0u6QBV2shDYKggPlB7rnhMEjH2ypNEaO7PuhSsTy1qltY7/UIn?= =?us-ascii?Q?NcQl7VUh162i+OlHFyyAd309osHXVSznBheOpuUBwsKmEHJ5yy0msMfzCNTP?= =?us-ascii?Q?YwVR7XVYDsg8bfgWFa0qicgnXlZA/PgDJ86ZjXIq4qUaT6mM7onT0+6QV9kD?= =?us-ascii?Q?UHF7aVuWX/bUkDYfMEGFevLu+XBMp2exej4qkEMFVxVZiSgXVYpF6IHxf29Z?= =?us-ascii?Q?IFheN2/bbTILGWSwME4v0knkuvgfRNGeqgEjBnX1JgCX6ndpopFJ7y36IVkC?= =?us-ascii?Q?uX9Frd0s5LEubLonW5LXnDivZCfVQPagDz45KFlabmobsPnts+GQpo0rrN9m?= =?us-ascii?Q?C/ZL1RlPzSGoe25XxcDBmfZLaHwHkd42Iyp/00vMGouWcPxDwTtUZYRN6Cpt?= =?us-ascii?Q?OFmVmpnMuTgSg1PsYH0xMJASTgQSp32QCzOFIJklA7XbI8y5gD7PmtFsXLXy?= =?us-ascii?Q?VzcHvpZ/DPojKQgoXpxQcaI8YtpEGDedT8qEK2MnMtDz7cq6Rf0cZcClBKiC?= =?us-ascii?Q?1s9viUpp47WG3yNAU01SlLWeRNcDZuvIlE/fqcBbWppFVogSjQhs7LUfBwqD?= =?us-ascii?Q?7OYBU0eIz2gBZx/88NuVCnB39Fg+ejly0ZzIn7afJHZk+scW7XQLMBBGkA13?= =?us-ascii?Q?K9/ruLJIU13JrfF/rBo+qgHf97UUFua62g+BQ7sX58wVFozlYAUcQCaYcfoB?= =?us-ascii?Q?9dlKjJ9YYS63jURRmPGgqPmEwoHZ9+zKSGcGbBfZzibCkgYYyUNu9g4dH0/o?= =?us-ascii?Q?8EvrXjvBs4qqr9/CPCP1vagb17qCs2fRSKz7rvaF/cEYRewpQypZ7+DCHAc/?= =?us-ascii?Q?xrfhs/AxRLNkBuRXUZ094d4pLshRnypQf4rzdGHN7ViYJ3DYEkgsdy10OnI1?= =?us-ascii?Q?C7uzOXIWapzRGD8mW9DFuHLdlbVQS0yDEjMUrPNWtJtXKlQI99jAxMh/QbzY?= =?us-ascii?Q?2In3nKr7As5zDhFehpCl8+WktXnsAd+AgRROwrbmo8Lnhm12bW/Kc8LnoLL2?= =?us-ascii?Q?dRLRH5LXBQgnKWrfTHejXfLkEWMKjbMxxpNkbQiVXjv/Hbbw5B2kX/QDPTGU?= =?us-ascii?Q?POG0mkH1za/kGegz+B82TjcZ1lqQAUNHog2AQTrOtQMSWcWo31uG3knnsXDG?= =?us-ascii?Q?eRiBj138bKDcjsJI838RgtWM/VwI/tMA4PJIqaU8aA25HfXP/ZwmHPcTumg2?= =?us-ascii?Q?Ub4Oj0MbZf2lwi1YcQpHcyzpZKkmOV1KNCuOFxFV5DnB+CRPIIR/5jVBcu9K?= =?us-ascii?Q?xEnJbCP0eJ5HKxgUG9ONZ8ZszK/CyRiV9Jb4zpJCNhZb8xZ2FjpnRJ6YYJyA?= =?us-ascii?Q?Gm4WMzNZHrT8sFQlp3TZRYvebxt1n9FBZL88ZlYfnaNyNZOvHyc1QkkjshTv?= =?us-ascii?Q?kb0dwxWBkyvtcx2jZjeEwLxvziLn1eECVpzzPkjMJD0gThB9UqGZvAGCgbcM?= =?us-ascii?Q?LBaT3fX8vtyef2nlUNMyYW/TRDhA9MR3uIml?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cf9cef5-79d9-4921-2ecd-08da07e181c7 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB9081.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2022 06:43:55.5821 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DVTpzCuM707Nhr7rAD6J4PyPsSNXIaIZtdNQDZDoo42v4JLb1cp1ZwyMhCEFW6N1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0402MB3606 Received-SPF: pass client-ip=194.104.109.102; envelope-from=mchang@suse.com; helo=de-smtp-delivery-102.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Mar 2022 06:44:04 -0000 The warning is real as long as dangling pointer to 'tmp_' may be used if o32 and o64 are both null. However that is not going to happen and can be ignored safely because the PE_OHDR is being used in a context that either o32 or o64 must have been properly initialized. Sadly compiler seems not to always optimize that unused _tmp away so explicit suppression remain needed here. ../util/mkimage.c: In function 'grub_install_generate_image': ../util/mkimage.c:1422:41: error: dangling pointer to 'tmp_' may be used [-= Werror=3Ddangling-pointer=3D] 1422 | PE_OHDR (o32, o64, header_size) =3D grub_host_to_target32 (= header_size); ../util/mkimage.c:857:28: note: 'tmp_' declared here 857 | __typeof__((o64)->field) tmp_; \ | ^~~~ Signed-off-by: Michael Chang --- util/mkimage.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/util/mkimage.c b/util/mkimage.c index 21c2db7362..43078c71cd 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -1383,6 +1383,10 @@ grub_install_generate_image (const char *dir, const = char *prefix, section =3D (struct grub_pe32_section_table *)(o64 + 1); } =20 +#if __GNUC__ >=3D 12 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdangling-pointer" +#endif PE_OHDR (o32, o64, header_size) =3D grub_host_to_target32 (header_size); PE_OHDR (o32, o64, entry_addr) =3D grub_host_to_target32 (layout.start_ad= dress); PE_OHDR (o32, o64, image_base) =3D 0; @@ -1402,6 +1406,9 @@ grub_install_generate_image (const char *dir, const c= har *prefix, /* The sections. */ PE_OHDR (o32, o64, code_base) =3D grub_host_to_target32 (vma); PE_OHDR (o32, o64, code_size) =3D grub_host_to_target32 (layout.exec_size= ); +#if __GNUC__ >=3D 12 +#pragma GCC diagnostic pop +#endif section =3D init_pe_section (image_target, section, ".text", &vma, layout.exec_size, image_target->section_align, @@ -1411,10 +1418,17 @@ grub_install_generate_image (const char *dir, const= char *prefix, GRUB_PE32_SCN_MEM_READ); =20 scn_size =3D ALIGN_UP (layout.kernel_size - layout.exec_size, GRUB_PE32_F= ILE_ALIGNMENT); +#if __GNUC__ >=3D 12 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdangling-pointer" +#endif /* ALIGN_UP (sbat_size, GRUB_PE32_FILE_ALIGNMENT) is done earlier. */ PE_OHDR (o32, o64, data_size) =3D grub_host_to_target32 (scn_size + sbat_= size + ALIGN_UP (total_module_size, GRUB_PE32_FILE_ALIGNMENT)); +#if __GNUC__ >=3D 12 +#pragma GCC diagnostic pop +#endif =20 section =3D init_pe_section (image_target, section, ".data", &vma, scn_size, image_target->section_align, @@ -1445,8 +1459,15 @@ grub_install_generate_image (const char *dir, const = char *prefix, } =20 scn_size =3D layout.reloc_size; +#if __GNUC__ >=3D 12 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdangling-pointer" +#endif PE_OHDR (o32, o64, base_relocation_table.rva) =3D grub_host_to_target32 (= vma); PE_OHDR (o32, o64, base_relocation_table.size) =3D grub_host_to_target32 = (scn_size); +#if __GNUC__ >=3D 12 +#pragma GCC diagnostic pop +#endif memcpy (pe_img + raw_data, layout.reloc_section, scn_size); init_pe_section (image_target, section, ".reloc", &vma, scn_size, image_target->section_align, --=20 2.34.1