diff --git a/src/shared/efi-api.c b/src/shared/efi-api.c index 73c09f66f6..bbc410ca50 100644 --- a/src/shared/efi-api.c +++ b/src/shared/efi-api.c @@ -615,9 +615,9 @@ void efi_id128_to_guid(sd_id128_t id, void *ret_guid) { assert(ret_guid); EFI_GUID uuid = { - .Data1 = id.bytes[0] << 24 | id.bytes[1] << 16 | id.bytes[2] << 8 | id.bytes[3], - .Data2 = id.bytes[4] << 8 | id.bytes[5], - .Data3 = id.bytes[6] << 8 | id.bytes[7], + .Data1 = (uint32_t) id.bytes[0] << 24 | (uint32_t) id.bytes[1] << 16 | (uint32_t) id.bytes[2] << 8 | id.bytes[3], + .Data2 = (uint16_t) id.bytes[4] << 8 | id.bytes[5], + .Data3 = (uint16_t) id.bytes[6] << 8 | id.bytes[7], }; memcpy(uuid.Data4, id.bytes+8, sizeof(uuid.Data4)); memcpy(ret_guid, &uuid, sizeof(uuid));