From patchwork Wed Aug 14 04:44:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1146735 X-Patchwork-Delegate: xypron.glpk@gmx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="kobeRe3r"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 467cS72ZpHz9sML for ; Wed, 14 Aug 2019 14:44:23 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 68554C21D56; Wed, 14 Aug 2019 04:44:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id D5D3AC21C29; Wed, 14 Aug 2019 04:44:15 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A3B49C21BE5; Wed, 14 Aug 2019 04:44:14 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by lists.denx.de (Postfix) with ESMTPS id 3AC95C21C29 for ; Wed, 14 Aug 2019 04:44:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1565757851; bh=et2pXC8c9VQs0FYuD6j70vJPsw8J8lH69PhzViJDiyI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=kobeRe3rsD1+8pMuMe0EvA/K/jAoeL1kWwS67tlPnfHWOwcQ0PW4b/goUtIlE+fg2 FdC6Iorsu5adInnpdDl9s6KjHOxtWWzeSlNnBcNaVzbAuCIicuwMSqimExFzu4nzZc xuUUZ8U9mo+Qptfgv498Gae8TtOdpLLCPcFHEPcE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from LT02.fritz.box ([84.118.159.3]) by mail.gmx.com (mrgmx003 [212.227.17.184]) with ESMTPSA (Nemesis) id 0Mda8q-1hf7p92P08-00PNOm; Wed, 14 Aug 2019 06:44:11 +0200 From: Heinrich Schuchardt To: Alexander Graf Date: Wed, 14 Aug 2019 06:44:07 +0200 Message-Id: <20190814044407.5098-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:bkhNMQSosbEj3jz8ngj424RRLu5Rar0OAfa73QHvFCyCMo7V2kr ZEhXeFdP4iAW0RMtT2oB3MPDOPNb2juS74/dSXipp8vICbfgPQpcmfTqDH36rb8AzaT1F0O vn7gBRz/047Y3Zi0PH5j6Iuqidkl0MIwlms0vLnm85XvcrHzCBDHltwX62G2JXKzr1d7Jzy Zv2dMotOsGC8taYxyFdhQ== X-UI-Out-Filterresults: notjunk:1; V03:K0:8Hj9cUqsBLs=:cZgtLLjn5cH1D/4HbXU7Wl JbQbrAEFDzsTZLIZfnvIGZpiCQnYV8A3Wyn5fDx3Km56GrnDweeLrgqRUX+tesF4BYi4hMYPS SSd4bPKYGV2zNHfLKHjufs4lM0LHGIpa+GnDdDI/FDjPXwzxhnmuzpDzmyiZUy18L0PL+Nfb7 cgmXLzti0Qagx8zrU36HIQk3QIIVUkfUmTvLBsyAGmaaHcVXvzkQn3JgoRt/det4DbCN/OAjK fI77SgHthyxUPtfOm0Hh4Ggj0SqfuUDGNyeejDEU6DtO4E9vOBv0aYohx/Pd41LYPwMTWob9O 5sYfGi/rx4xXkLJnNYaAzfZpO6RAio8Ei3x5n0y2sV/eWwIwyc5e0LT8EilcTHBXNcP3HVwGc XjEz6Yq9UhlqgWDMMCoKTYf9Sc7M28UDJ0zmLLNdZQR49rW33NXUeM+739x/O4aGYpuymG3oY A70G2qFCHA4OIu5rA7mPRn6TnsdGriJMUMxiS0bdfYZQw12eu2I72k8FKNnSURUleSiYl3rcF 5YDiFMBJplANRNiCBMzKOqpfPSqoKOTOBxQY7QNONlFoZahpWnk7hNODcMVrRfCca4/tyEFuO 1aGlvFoj1xWrHXLOmGRvHzHWfP99aTmjJ10RMsUkkqureKOvyu4q4XAtHSaEHApmfCeQXDY1o jdhY/3bgb0ajPY4SWfX0NaJ3lKZ1TSiI2VJCKLhoPjrGp9B/8L834BFjqINXgfsO4aGT9OWxw Fh8k+N6NqxupIrnoEuI6s6OAFZoLjkYi4Gq90iL5FRGYlXXnivM9/2WFqJEhKqut5RbpB3HSX axMCulsYWkdoOqQZ23LjonS5gQXvza6dVl6xdZkYPF+mohCvW17ITyxTTXNa4ApjP3+yBynCJ 0V4pskDShQX4w1uA7e39dLC9Sr7xdOuFoE5MDl96ttFvslty0BtEZzh3rqkL8gwcvTHHKNsKy QJPVrBpGt9UYL87BaeA/Q2FNASDxLsoAOm2WsY2fGp3Vp5K5TW2Mqsc7hhlnTgSQSXHfosUfR kyIqYONnNaouDyhZIjthDFHMEubIs5d1mhbL4U7azyjDAO/kdVgkY+Oeeaakgj01CB4ljqtlr Is6vy2qzN89u3yT9+0tPdc3s7U7sVeimeYUxf5JnjLhPVHFfO0tXqdSEg== Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [U-Boot] [PATCH 1/1] efi_loader: parameter check in SetVirtualAddressMap X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Check the parameters DescriptorSize and DescriptiorVersion of SetVirtualAddressMap() as prescribed by the UEFI specification. Signed-off-by: Heinrich Schuchardt --- lib/efi_loader/efi_runtime.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) -- 2.20.1 diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c index fb24131462..54e5a98bfc 100644 --- a/lib/efi_loader/efi_runtime.c +++ b/lib/efi_loader/efi_runtime.c @@ -641,12 +641,17 @@ static efi_status_t EFIAPI efi_set_virtual_address_map( { efi_uintn_t n = memory_map_size / descriptor_size; efi_uintn_t i; + efi_status_t ret = EFI_INVALID_PARAMETER; int rt_code_sections = 0; struct efi_event *event; EFI_ENTRY("%zx %zx %x %p", memory_map_size, descriptor_size, descriptor_version, virtmap); + if (descriptor_version != EFI_MEMORY_DESCRIPTOR_VERSION || + descriptor_size < sizeof(struct efi_mem_desc)) + goto out; + efi_virtmap = virtmap; efi_descriptor_size = descriptor_size; efi_descriptor_count = n; @@ -677,7 +682,7 @@ static efi_status_t EFIAPI efi_set_virtual_address_map( * We expose exactly one single runtime code section, so * something is definitely going wrong. */ - return EFI_EXIT(EFI_INVALID_PARAMETER); + goto out; } /* Notify EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE */ @@ -738,11 +743,13 @@ static efi_status_t EFIAPI efi_set_virtual_address_map( efi_relocate_runtime_table(new_offset); efi_runtime_relocate(new_offset, map); - return EFI_EXIT(EFI_SUCCESS); + ret = EFI_SUCCESS; + goto out; } } - return EFI_EXIT(EFI_INVALID_PARAMETER); +out: + return EFI_EXIT(ret); } /**