From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1oNWtY-000798-4l for mharc-grub-devel@gnu.org; Mon, 15 Aug 2022 06:00:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40664) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNWtR-00078t-7D for grub-devel@gnu.org; Mon, 15 Aug 2022 06:00:21 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:62064) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNWtN-0008Sw-3M for grub-devel@gnu.org; Mon, 15 Aug 2022 06:00:20 -0400 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27F5J8b8010565 for ; Mon, 15 Aug 2022 10:00:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : in-reply-to : references : date : message-id : content-type : mime-version; s=corp-2022-7-12; bh=UfBLjFkwY3lifVOEpiJ78t20kdJhdWN8WhmKXeHzqCQ=; b=UaPD1MXhxl8DmzEGZt54ejhg30k38PXAMX/QQ4qpI/BQAk+WKSpHuqeN11J8h5LHbjhh 1/xFmycWaeFxu+7omIcZmNKCpuhWooZy4MmLUdjUBvO0LDk6GX7wB3WeBPvQbEjdC72o NFpPUf5kpJKp6Xrb78pwY+hXDdBOxADBcdDyvAvZJYNuQliK4ZiMjvzN6bowNed+Hk/E 6zzb9PCultAtwvDcyKwdI223a+J+MoGyZ3gOoVauwl7bQ/zMFG0T5CwqbOsGa45Hzqs/ zqVQV6MagOg5K14PFemfE4ZNd/OGN5SSW4K0QNmZhXqg/mOAurCTWSt1CXR2nHFHzIeJ Og== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3hx3ua2jyt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Aug 2022 10:00:09 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 27F9tPuU010595 for ; Mon, 15 Aug 2022 10:00:09 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2107.outbound.protection.outlook.com [104.47.58.107]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3hx2d18kvh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Aug 2022 10:00:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RxSTecT1Y7PpR8n+7GqJq6QmsS0vKXFdWtrF93BRjn9VHMxb4CR65BNiAkUKG1ui0re9VJrqeLkyYwqGS/WfSUp6r6JIXjuFZJxY6nzcnWjywHChnugXC31W3a4zvhxChW9c0Pvz1N+sxZrJjbFkddCL9S7vBmqzLRtZeqiVGGtcpjQYcyZcJ2zOJ3PXl0qTc3mv5E5aSUQT+onp76YhP54svpu7160mKR+IVmBGZ/VFzBmgRTErBYx/GPjND+VxhcVzXHoOHseEcaH1Hf1sDf6ifM6mGZ2mlVtcHiXaRhVZl7k9PS8xF8fSMBsGnU9L144TFPBzkxEx5yX2anYs1A== 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=UfBLjFkwY3lifVOEpiJ78t20kdJhdWN8WhmKXeHzqCQ=; b=C1/oaRzzAHMYQQrNGGt07Xf/0GHxVPtat75CeLCxm8Wz4/LqHTDKA069WeIG90gmpXDu22DNScqUU7HafRIvnCfm3e0ddVs70Vu16tce6wkGoWUsIwZ9ZzgnQq/uSDhC69LJ3WS/9KcBcPSCTEc7jeEkNfJAUoREG7sZGYzEkPf4LbWYO3uEO6EQcWNhzgLhMSjTj8Qcq+44WbF71z6tLJcE9YgEdADBtfryEHTkXtvoD9zKtGAdmz6KX7djlBWXHpIdN8wex7uvDRHmqkG8gR+L9DMNxRmjgzLa+oVHi6Xt/rEbbvXTxut5YK/PnoduZnCcOtxiiDXb94XAGxl6Zw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UfBLjFkwY3lifVOEpiJ78t20kdJhdWN8WhmKXeHzqCQ=; b=CclQrNHXf6VNWM3hBUL4zvoEC8TQ8Vh0SzKApMzcL53P2frp5B5UxBTcJTsUChqRyVvuOgdvaCrO/HN0RamSxd+sQw1UyfC7X4jJvbVp+fXJlIBO+bYwzy/hngV8DQsucFrAnftvnL3ou7iKC22eiwkFOtQIjWSuZS5/s40/1Xc= Received: from BLAPR10MB5138.namprd10.prod.outlook.com (2603:10b6:208:322::8) by CH2PR10MB3864.namprd10.prod.outlook.com (2603:10b6:610:2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.11; Mon, 15 Aug 2022 10:00:06 +0000 Received: from BLAPR10MB5138.namprd10.prod.outlook.com ([fe80::89fe:338:779d:6bb0]) by BLAPR10MB5138.namprd10.prod.outlook.com ([fe80::89fe:338:779d:6bb0%9]) with mapi id 15.20.5525.011; Mon, 15 Aug 2022 10:00:06 +0000 From: Darren Kenny To: Alec Brown , grub-devel@gnu.org Cc: daniel.kiper@oracle.com, alec.r.brown@oracle.com Subject: Re: [PATCH v2 0/5] Fix coverity bugs and add checks for elf values in grub-core In-Reply-To: <1660343149-8188-1-git-send-email-alec.r.brown@oracle.com> References: <1660343149-8188-1-git-send-email-alec.r.brown@oracle.com> Date: Mon, 15 Aug 2022 11:00:01 +0100 Message-ID: Content-Type: text/plain X-ClientProxiedBy: DB7PR05CA0027.eurprd05.prod.outlook.com (2603:10a6:10:36::40) To BLAPR10MB5138.namprd10.prod.outlook.com (2603:10b6:208:322::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 34a2386c-1fad-424d-5c82-08da7ea4ede0 X-MS-TrafficTypeDiagnostic: CH2PR10MB3864:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QM34Z0lSdMC/lvHe3hYPQIZO6FKt6x7VI3fbyNmfCtcNGcW6tEq19xfo4hvuUlnJZkt7ll83J+W11lZqylmonAQ1Sg/q+KtIGgIMsZBqQ2sPQkZlaysxjVeU59h/5V9y6cxvPLJE76A2Perp3/uYVdwVs6HZGqhlQqPUZrL0hbliZQVsRhwdV03dY08tRdMUkE4lqVikOcLTtA2AT7zJgJ24Shv4stAAEcVnRHRicRAszaNplPnXVJMoQhb19uD02iXN16ae23FW0sGvSAQiLw3bnD8gf/U/hbrQ4IpK3VhEz2hXGKC+nAdUBD/4LD+u/NbjRLodFmeP9+oZPB9ZfFYNO19bwvZREqvXoprQfIAQrOHPEVn85AJ5p0sytlmYoUMxm11EAdD6Ze1I65Sk/xf1LT1B3SWyEJ3/S8CxxSww6x6J2lG05pbx+2aHByNiySKtuu0GAfQVYMEb4x7gJNfEshRziK7mnsmKGgEQFp4csSS3i1NjG1fe+YzTwbO6aYSwXfrCcjC6veJrvzx1rL8i9CaUMGwU9ff8fTRAuOtlf5JAb2XWjtHnSe1LjDTEF+x3SHsbU8sR2I86cdf1gqDCcby4tyLUeej+LhsWWcGwkVXUKbulMQ+95VMLrMlYA7n0NBlGZjrP1bZxBDtqNjtga+Tsuta0DQ4WF/Xu7jn/giclL4lwPJ7xJmpy7tLyZOSgPbHOiRMD3tmY3mUvqsYIAyuWkXrbY0nySyxSyla7c5exXb5mE8N4Y506K4ye X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB5138.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(39860400002)(346002)(396003)(136003)(366004)(376002)(30864003)(41300700001)(316002)(66556008)(44832011)(2906002)(6512007)(6666004)(26005)(66476007)(66946007)(8676002)(38100700002)(4326008)(5660300002)(186003)(478600001)(8936002)(83380400001)(86362001)(36756003)(107886003)(6486002)(6506007)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ckyec5psNA5gRSEitwgrrG8nb7LiuXxB0VuAio5Ky3hUX/OmSxxeUoGJ7jj3?= =?us-ascii?Q?z4DmLKbEKOlwNZ8SrZhKP1INZKgePelH2xRofFngz74kSDLOTO82m7thsLic?= =?us-ascii?Q?U748BZlwknv7gX2oWr8qmv3V6PQNZh2IOWSo3VfQrzqnbGciEuxBR/TyBRK8?= =?us-ascii?Q?Kcu2T+VD4wjyCpyuRPG+RidQygB4GscJnWWSbwS85JH+H5krFSVTjO7JhNNF?= =?us-ascii?Q?ejJpkO4H3Cuf7SS0fLSX27BVUrwuT1WAVWpOeAfYKH3JEB87zWcjneHv16rY?= =?us-ascii?Q?3e7MtwDdYt/ZsUlg4ffKEw3x8VPJaW13CA0oZrVTwCjAGWqzYxHMODtl0r3F?= =?us-ascii?Q?IFOsrGTthPlfRqf42sONzn2LUdc9JNdsfPAktI32EFP4TSgOVJHz18fO3Anc?= =?us-ascii?Q?yatoHrTUnApT7h5OBWRKSlkkRFbNJCC8AFEqEWglLx4RxVy+O6y+m81K6ANX?= =?us-ascii?Q?dYEcjcFP0mnGLF9BrQVva+tN3jc0HP9hgK1FuMUqF4+CTQOd+JOgjrY0wfKj?= =?us-ascii?Q?vufGzIfDcHTXhyqeDiiQGWOLFkKYLsNWol92YybqxnMbECnwxVPX/pYKhOln?= =?us-ascii?Q?VaU1Lz7PIZfSvJ9tPBiDcDaNOrLoW1lYVh3j/jD99steTv7sRVzVxnJSy7+G?= =?us-ascii?Q?Ys6XqX3vORPZaf7NjxvmJkpjxvLOi9Z8qUbj5UlE++R6ZhCoaf1YIaRYr3Lt?= =?us-ascii?Q?LPBjTHQYbceEYQxwnlgWSJ/bxGPkX+mRyBry/rZlk6t9Qqonj8bJGFnM21Jp?= =?us-ascii?Q?2xJeneIAum5ymY3yOKuAx7TzIu2QWAMycNjZIB8pFVyrWdvRJVqOeuhaBj/+?= =?us-ascii?Q?dlWaPcqrKJ57BbcetDuLDyPpJclC0TPM/wlo16ZHg+1m3Rwu2RWcuFPpcxpm?= =?us-ascii?Q?LRaVDA9nphUeBCyBYDVPKRi7A70ewSUCfcwcxwcWfKs3CGSyjRQkW7ZgFK6V?= =?us-ascii?Q?ytPR9I/DTzXmO/lihFgFw8rMzLYrstpbdKatVWlhnPwJ9m9BGEuhz+Uxb/xS?= =?us-ascii?Q?yZNZjBRpjocS8e2QgNs2uM75mn6I6MWlk3XfAfLFlFsMx+gljUvvu/cVcoaD?= =?us-ascii?Q?Z/ecQP60heAmRNr0tasUkeqHW/7ddnhmuknHKBrZii8q3fatxZsSQYvA7c/Z?= =?us-ascii?Q?/WLrls4bEyMQSsYL/ayB3U+X5xHN0aMOVXjBNvnun9+B5/+MHSnscVeokX+H?= =?us-ascii?Q?bL1GgyXJ7VSJx/yxudWaMrBYXTiB3t3wC4qc2f+atCHf8TP/WujfXgbGoQBj?= =?us-ascii?Q?jhBkJCV7L3EpOz1rmTlDPf15J7zB8hJlGPFEHyBn182yRx/tFYKikCqLPrBm?= =?us-ascii?Q?sUWbllLrkzA6yRERoGM5TFPgqkbAws/AjXNtFb8SDxRb9uxc5gperH2iYhp3?= =?us-ascii?Q?CNoMp59k9uMAijRth1FxJX33vWFgUtKGZmFOuAbtrYXcDZ3MGlpwdaczD6Jd?= =?us-ascii?Q?RUJI6Aq+F9mg1y5ZRHYIVOP7RioiXEE8YXHf6po4TDziz7OKYdyEyETUo73/?= =?us-ascii?Q?CEU42oEm2MF6HmxsKsK7JkCZ/F09YfTZhA6Lo8Ogxq7OlO3W065hTscEbw2D?= =?us-ascii?Q?UhVU3pOqe/oCnnShpIbOmnhh3o/dvcvPYKqmz2+W?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PpIvOk1PFQXVX5GyNrWurqNmwBopsYM7qb/FRZUnzSfr6HkYVGkjXX95ojzoTY7fUKeP+JKb5Jpeem3VZvqfJYVqszZQ/YWBzfoSJhjg4W9HwF5fT8uyhMRaidkZVZqGPAOp8mkYjTPDAX/qneroeWQj/WFN/ZuSffVrMPSfokRR1bQ3sNGqRNE24uGRbIazB7TKbb/1Klt0U8V98olKA1+VQp/+3f3TgNnJRLtTG70U7b81l59EnYtiRfaI1WdrwE8upwFrAirn65Qq4nFXzWAwoxZuEyoNZSo6yKglUya0Y9YCPU2wjZFsLRaj/+rZhxb2c5akC+BhM50a5W4PEPY2LnrVEMSo/3yYckpIzCS16gRhP1+rKni2eztEe+J65MFjzWUwrz0HbJrU622l9K1GbNYEUHPBMhm/Eq8xBk0n+PbYQm5sUhsydS4QyZK5/pOF+FAXX/Ew7YR3giqwl29xQTU5VKojW4BtnYJTGB+XiJPgXC9I4Ta/Y461qn3J6E7sAaoOomnwrVS8SsC5FdxkRfGPlErploH8sLoRSEGnb3VLWxvvGpXJ6m0b3SMrTM43seDikG7/ZrVhhwHeRM1ekok21UTTPm8l5FAGpOfr/L2vM119HNv7dV9z5KaXY5ZsyeC6wROQmaidYHjoIYFkTgOWShn4mqO9nQhBCs0BWvoh9Kn9tJ7Us2RN5RGiX6pjhb0p38QGsCrXoYbcsw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34a2386c-1fad-424d-5c82-08da7ea4ede0 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5138.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2022 10:00:06.0629 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4cr8ub+fYIPzY6vXe4weKc1dWbRoUxgkFRhy/WC3Ds4q7/00BEIkEJ6JOdJ/UHTflRetiwdBGOB7gDccn+87tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB3864 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-15_06,2022-08-11_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2208150036 X-Proofpoint-ORIG-GUID: 20ciYwczly7Iw757CVcQ0Mz69l3wAojU X-Proofpoint-GUID: 20ciYwczly7Iw757CVcQ0Mz69l3wAojU Received-SPF: pass client-ip=205.220.165.32; envelope-from=darren.kenny@oracle.com; helo=mx0a-00069f02.pphosted.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_H2=-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: Mon, 15 Aug 2022 10:00:24 -0000 Hi Alec, These changes look good to me, Reviewed-by: Darren Kenny Thanks, Darren. On Friday, 2022-08-12 at 18:25:44 -04, Alec Brown wrote: > Updates from v1: > - A few patches didn't work on 32-bit platforms. Fixed this by renaming > function definitions in multiboot_elfxx.c. The patches that did work were > merged with the master branch. > - Added a patch to make error conditionals consistent in comparing to > GRUB_ERR_NONE. > > Coverity identified several untrusted loop bounds and untrusted allocation size > bugs in grub-core/loader/i386/bsdXX.c and grub-core/loader/multiboot_elfXX.c. > Upon review of these bugs, I found that specific checks weren't being made to > various elf header values based on the elf manual page. The first version of > the patch series contained the patches fixing the Coverity bugs, but those have > been merged with the master branch. The remaining patches add functions to > check for the correct elf header values, update previous work done in > util/grub-module-verifierXX.c that checks elf header values, and update error > conditionals of the affected files. > > Also, I was able to verify that these patches work by using Multiboot and > Multiboot2 to boot a Xen image. > > Alec Brown (5): > elf: Validate number of elf section header table entries > elf: Validate elf section header table index for section name string table > elf: Validate number of elf program header table entries > util/grub-module-verifierXX.c: Changed get_shnum() return type > loader: Update error conditionals to use enums > > grub-core/kern/elf.c | 18 ++++++++++++++++++ > grub-core/kern/elfXX.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > grub-core/loader/i386/bsdXX.c | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------- > grub-core/loader/multiboot_elfxx.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------- > include/grub/elf.h | 23 +++++++++++++++++++++++ > util/grub-module-verifierXX.c | 10 ++++++---- > 6 files changed, 292 insertions(+), 76 deletions(-) > > Interdiff against v1: > diff --git a/grub-core/loader/i386/bsdXX.c b/grub-core/loader/i386/bsdXX.c > index 2cc1daa49..09d909f1b 100644 > --- a/grub-core/loader/i386/bsdXX.c > +++ b/grub-core/loader/i386/bsdXX.c > @@ -52,7 +52,7 @@ read_headers (grub_file_t file, const char *filename, Elf_Ehdr *e, Elf_Shdr **sh > return grub_error (GRUB_ERR_BAD_OS, N_("invalid arch-dependent ELF magic")); > > err = grub_elf_get_shnum (e, &shnum); > - if (err) > + if (err != GRUB_ERR_NONE) > return err; > > *shdr = grub_calloc (shnum, e->e_shentsize); > @@ -94,7 +94,7 @@ SUFFIX (grub_freebsd_load_elfmodule_obj) (struct grub_relocator *relocator, > curload = module = ALIGN_PAGE (*kern_end); > > err = read_headers (file, argv[0], &e, &shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > > err = grub_elf_get_shnum (&e, &shnum); > @@ -118,7 +118,7 @@ SUFFIX (grub_freebsd_load_elfmodule_obj) (struct grub_relocator *relocator, > grub_relocator_chunk_t ch; > err = grub_relocator_alloc_chunk_addr (relocator, &ch, > module, chunk_size); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > chunk_src = get_virtual_current_address (ch); > } > @@ -143,7 +143,7 @@ SUFFIX (grub_freebsd_load_elfmodule_obj) (struct grub_relocator *relocator, > case SHT_PROGBITS: > err = load (file, argv[0], (grub_uint8_t *) chunk_src + curload - *kern_end, > s->sh_offset, s->sh_size); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > break; > case SHT_NOBITS: > @@ -159,11 +159,11 @@ SUFFIX (grub_freebsd_load_elfmodule_obj) (struct grub_relocator *relocator, > err = grub_freebsd_add_meta_module (argv[0], FREEBSD_MODTYPE_ELF_MODULE_OBJ, > argc - 1, argv + 1, module, > curload - module); > - if (! err) > + if (err == GRUB_ERR_NONE) > err = grub_bsd_add_meta (FREEBSD_MODINFO_METADATA > | FREEBSD_MODINFOMD_ELFHDR, > &e, sizeof (e)); > - if (! err) > + if (err == GRUB_ERR_NONE) > err = grub_bsd_add_meta (FREEBSD_MODINFO_METADATA > | FREEBSD_MODINFOMD_SHDR, > shdr, shnum * e.e_shentsize); > @@ -192,7 +192,7 @@ SUFFIX (grub_freebsd_load_elfmodule) (struct grub_relocator *relocator, > curload = module = ALIGN_PAGE (*kern_end); > > err = read_headers (file, argv[0], &e, &shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > > err = grub_elf_get_shnum (&e, &shnum); > @@ -225,7 +225,7 @@ SUFFIX (grub_freebsd_load_elfmodule) (struct grub_relocator *relocator, > > err = grub_relocator_alloc_chunk_addr (relocator, &ch, > module, chunk_size); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > > chunk_src = get_virtual_current_address (ch); > @@ -252,7 +252,7 @@ SUFFIX (grub_freebsd_load_elfmodule) (struct grub_relocator *relocator, > (grub_uint8_t *) chunk_src + module > + s->sh_addr - *kern_end, > s->sh_offset, s->sh_size); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > break; > case SHT_NOBITS: > @@ -271,12 +271,12 @@ SUFFIX (grub_freebsd_load_elfmodule) (struct grub_relocator *relocator, > load (file, argv[0], (grub_uint8_t *) chunk_src + curload - *kern_end, e.e_shoff, > (grub_size_t) shnum * e.e_shentsize); > e.e_shoff = curload - module; > - curload += (grub_addr_t) shnum * e.e_shentsize; > + curload += (grub_addr_t) shnum * e.e_shentsize; > > load (file, argv[0], (grub_uint8_t *) chunk_src + curload - *kern_end, e.e_phoff, > (grub_size_t) phnum * e.e_phentsize); > e.e_phoff = curload - module; > - curload += (grub_addr_t) phnum * e.e_phentsize; > + curload += (grub_addr_t) phnum * e.e_phentsize; > > *kern_end = curload; > > @@ -285,7 +285,7 @@ SUFFIX (grub_freebsd_load_elfmodule) (struct grub_relocator *relocator, > curload - module); > out: > grub_free (shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > return err; > return SUFFIX (grub_freebsd_load_elf_meta) (relocator, file, argv[0], kern_end); > } > @@ -313,7 +313,7 @@ SUFFIX (grub_freebsd_load_elf_meta) (struct grub_relocator *relocator, > grub_size_t chunk_size; > > err = read_headers (file, filename, &e, &shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > > err = grub_elf_get_shnum (&e, &shnum); > @@ -323,7 +323,7 @@ SUFFIX (grub_freebsd_load_elf_meta) (struct grub_relocator *relocator, > err = grub_bsd_add_meta (FREEBSD_MODINFO_METADATA | > FREEBSD_MODINFOMD_ELFHDR, &e, > sizeof (e)); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > > for (s = shdr; s < (Elf_Shdr *) ((grub_uint8_t *) shdr + shnum * e.e_shentsize); > @@ -351,7 +351,7 @@ SUFFIX (grub_freebsd_load_elf_meta) (struct grub_relocator *relocator, > grub_relocator_chunk_t ch; > err = grub_relocator_alloc_chunk_addr (relocator, &ch, > symtarget, chunk_size); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > sym_chunk = get_virtual_current_address (ch); > } > @@ -414,14 +414,14 @@ SUFFIX (grub_freebsd_load_elf_meta) (struct grub_relocator *relocator, > err = grub_bsd_add_meta (FREEBSD_MODINFO_METADATA | > FREEBSD_MODINFOMD_DYNAMIC, &dynamic, > sizeof (dynamic)); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > } > > err = grub_bsd_add_meta (FREEBSD_MODINFO_METADATA | > FREEBSD_MODINFOMD_SSYM, &symstart, > sizeof (symstart)); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > > err = grub_bsd_add_meta (FREEBSD_MODINFO_METADATA | > @@ -429,7 +429,7 @@ SUFFIX (grub_freebsd_load_elf_meta) (struct grub_relocator *relocator, > sizeof (symend)); > out: > grub_free (shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > return err; > > *kern_end = ALIGN_PAGE (symend); > @@ -455,7 +455,7 @@ SUFFIX (grub_netbsd_load_elf_meta) (struct grub_relocator *relocator, > grub_addr_t symtarget; > > err = read_headers (file, filename, &e, &shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > { > grub_free (shdr); > return grub_errno; > @@ -492,7 +492,7 @@ SUFFIX (grub_netbsd_load_elf_meta) (struct grub_relocator *relocator, > grub_relocator_chunk_t ch; > err = grub_relocator_alloc_chunk_addr (relocator, &ch, > symtarget, chunk_size); > - if (err) > + if (err != GRUB_ERR_NONE) > goto out; > sym_chunk = get_virtual_current_address (ch); > } > @@ -566,7 +566,7 @@ SUFFIX (grub_netbsd_load_elf_meta) (struct grub_relocator *relocator, > sizeof (symtab)); > out: > grub_free (shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > return err; > > *kern_end = ALIGN_PAGE (symtarget + chunk_size); > @@ -590,7 +590,7 @@ SUFFIX(grub_openbsd_find_ramdisk) (grub_file_t file, > Elf_Shnum shnum; > > err = read_headers (file, filename, &e, &shdr); > - if (err) > + if (err != GRUB_ERR_NONE) > { > grub_free (shdr); > return err; > diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c > index 3e72c6caa..b76451f73 100644 > --- a/grub-core/loader/multiboot_elfxx.c > +++ b/grub-core/loader/multiboot_elfxx.c > @@ -25,9 +25,9 @@ > # define Elf_Shdr Elf32_Shdr > # define Elf_Word Elf32_Word > # define Elf_Shnum Elf32_Shnum > -# define grub_elf_get_shnum grub_elf32_get_shnum > -# define grub_elf_get_shstrndx grub_elf32_get_shstrndx > -# define grub_elf_get_phnum grub_elf32_get_phnum > +# define grub_multiboot_elf_get_shnum grub_elf32_get_shnum > +# define grub_multiboot_elf_get_shstrndx grub_elf32_get_shstrndx > +# define grub_multiboot_elf_get_phnum grub_elf32_get_phnum > #elif defined(MULTIBOOT_LOAD_ELF64) > # define XX 64 > # define E_MACHINE MULTIBOOT_ELF64_MACHINE > @@ -37,9 +37,9 @@ > # define Elf_Shdr Elf64_Shdr > # define Elf_Word Elf64_Word > # define Elf_Shnum Elf64_Shnum > -# define grub_elf_get_shnum grub_elf64_get_shnum > -# define grub_elf_get_shstrndx grub_elf64_get_shstrndx > -# define grub_elf_get_phnum grub_elf64_get_phnum > +# define grub_multiboot_elf_get_shnum grub_elf64_get_shnum > +# define grub_multiboot_elf_get_shstrndx grub_elf64_get_shstrndx > +# define grub_multiboot_elf_get_phnum grub_elf64_get_phnum > #else > #error "I'm confused" > #endif > @@ -87,15 +87,15 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) > if (ehdr->e_type != ET_EXEC && ehdr->e_type != ET_DYN) > return grub_error (GRUB_ERR_UNKNOWN_OS, N_("this ELF file is not of the right type")); > > - err = grub_elf_get_shnum (ehdr, &shnum); > + err = grub_multiboot_elf_get_shnum (ehdr, &shnum); > if (err != GRUB_ERR_NONE) > return err; > > - err = grub_elf_get_shstrndx (ehdr, &shstrndx); > + err = grub_multiboot_elf_get_shstrndx (ehdr, &shstrndx); > if (err != GRUB_ERR_NONE) > return err; > > - err = grub_elf_get_phnum (ehdr, &phnum); > + err = grub_multiboot_elf_get_phnum (ehdr, &phnum); > if (err != GRUB_ERR_NONE) > return err; > > @@ -138,7 +138,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) > load_size, mld->align ? mld->align : 1, > > - if (err) > + if (err != GRUB_ERR_NONE) > { > grub_dprintf ("multiboot_loader", "Cannot allocate memory for OS image\n"); > return err; > @@ -173,7 +173,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) > err = grub_relocator_alloc_chunk_addr (GRUB_MULTIBOOT (relocator), &ch, > phdr(i)->p_paddr, phdr(i)->p_memsz); > > - if (err) > + if (err != GRUB_ERR_NONE) > { > grub_dprintf ("multiboot_loader", "Cannot allocate memory for OS image\n"); > return err; > @@ -284,7 +284,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) > sh->sh_size, sh->sh_addralign, > GRUB_RELOCATOR_PREFERENCE_NONE, > mld->avoid_efi_boot_services); > - if (err) > + if (err != GRUB_ERR_NONE) > { > grub_dprintf ("multiboot_loader", "Error loading shdr %d\n", i); > return err; > @@ -322,6 +322,6 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) > #undef Elf_Shdr > #undef Elf_Word > #undef Elf_Shnum > -#undef grub_elf_get_shnum > -#undef grub_elf_get_shstrndx > -#undef grub_elf_get_phnum > +#undef grub_multiboot_elf_get_shnum > +#undef grub_multiboot_elf_get_shstrndx > +#undef grub_multiboot_elf_get_phnum