From: Wei Liu Date: Mon, 22 Aug 2016 12:47:52 +0000 (+0100) Subject: hvmloader: correctly copy signature to info structures X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~523 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=80a59905fd36cc1625cf0e4d128bd764ecea3aca;p=xen.git hvmloader: correctly copy signature to info structures The original code used sizeof(info->signature) as the size parameter for memcpy, which was wrong. Fix that by using structure assignment. Signed-off-by: Wei Liu Acked-by: Jan Beulich --- diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovmf.c index b4bcc93bb9..0ac3416f8c 100644 --- a/tools/firmware/hvmloader/ovmf.c +++ b/tools/firmware/hvmloader/ovmf.c @@ -68,10 +68,10 @@ static void ovmf_setup_bios_info(void) { struct ovmf_info *info = (void *)OVMF_INFO_PHYSICAL_ADDRESS; - memset(info, 0, sizeof(*info)); - - memcpy(info->signature, "XenHVMOVMF", sizeof(info->signature)); - info->length = sizeof(*info); + *info = (struct ovmf_info) { + .signature = "XenHVMOVMF", + .length = sizeof(*info) + }; } static void ovmf_finish_bios_info(void) diff --git a/tools/firmware/hvmloader/seabios.c b/tools/firmware/hvmloader/seabios.c index 5c9a3512bd..44ff0d7f25 100644 --- a/tools/firmware/hvmloader/seabios.c +++ b/tools/firmware/hvmloader/seabios.c @@ -56,10 +56,10 @@ static void seabios_setup_bios_info(void) { struct seabios_info *info = (void *)BIOS_INFO_PHYSICAL_ADDRESS; - memset(info, 0, sizeof(*info)); - - memcpy(info->signature, "XenHVMSeaBIOS", sizeof(info->signature)); - info->length = sizeof(*info); + *info = (struct seabios_info) { + .signature = "XenHVMSeaBIOS", + .length = sizeof(*info) + }; info->tables = (uint32_t)scratch_alloc(MAX_TABLES*sizeof(uint32_t), 0); }