From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ross Lagerwall Subject: Re: [PATCH] EFI: map allocation size must be set to zero Date: Thu, 11 Jun 2015 12:40:01 +0100 Message-ID: <55797391.20106@citrix.com> References: <55798EBE020000780008399E@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Z30q5-0003jr-Px for xen-devel@lists.xenproject.org; Thu, 11 Jun 2015 11:40:05 +0000 In-Reply-To: <55798EBE020000780008399E@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich , xen-devel List-Id: xen-devel@lists.xenproject.org On 06/11/2015 12:35 PM, Jan Beulich wrote: > Commit 8a753b3f1c ("efi: fix allocation problems if ExitBootServices() > fails") replaced the use of a static (and hence zero-initialized) > variable by an automatic (and hence uninitialized) one. > > Also drop the variable introduced by that commit in favor of re-using > another available and suitable one. > > Signed-off-by: Jan Beulich > > --- a/xen/common/efi/boot.c > +++ b/xen/common/efi/boot.c > @@ -704,7 +704,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SY > EFI_STATUS status; > unsigned int i, argc; > CHAR16 **argv, *file_name, *cfg_file_name = NULL, *options = NULL; > - UINTN map_alloc_size, map_key, info_size, gop_mode = ~0; > + UINTN map_key, info_size, gop_mode = ~0; > EFI_HANDLE *handles = NULL; > EFI_SHIM_LOCK_PROTOCOL *shim_lock; > EFI_GRAPHICS_OUTPUT_PROTOCOL *gop = NULL; > @@ -1061,16 +1061,17 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SY > efi_arch_video_init(gop, info_size, mode_info); > } > > - efi_bs->GetMemoryMap(&map_alloc_size, NULL, &map_key, > + info_size = 0; > + efi_bs->GetMemoryMap(&info_size, NULL, &map_key, > &efi_mdesc_size, &mdesc_ver); > - map_alloc_size += 8 * efi_mdesc_size; > - efi_memmap = efi_arch_allocate_mmap_buffer(map_alloc_size); > + info_size += 8 * efi_mdesc_size; > + efi_memmap = efi_arch_allocate_mmap_buffer(info_size); > if ( !efi_memmap ) > blexit(L"Unable to allocate memory for EFI memory map"); > > for ( retry = 0; ; retry = 1 ) > { > - efi_memmap_size = map_alloc_size; > + efi_memmap_size = info_size; > status = efi_bs->GetMemoryMap(&efi_memmap_size, efi_memmap, &map_key, > &efi_mdesc_size, &mdesc_ver); > if ( EFI_ERROR(status) ) > > > Acked-by: Ross Lagerwall -- Ross Lagerwall