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 <wei.liu2@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
{
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)
{
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);
}