From 09cbfb9d0bdb1d14b5923b35e7871786092028a8 Mon Sep 17 00:00:00 2001 From: Nikolai SAOUKH Date: Tue, 12 May 2020 17:49:05 +0300 Subject: [PATCH] Library/OcBootManagementLib: fix (im?)possible loss of data in PanicUnpack() --- Library/OcBootManagementLib/ApplePanic.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Library/OcBootManagementLib/ApplePanic.c b/Library/OcBootManagementLib/ApplePanic.c index 4dd75fff..ffdd4f45 100644 --- a/Library/OcBootManagementLib/ApplePanic.c +++ b/Library/OcBootManagementLib/ApplePanic.c @@ -64,14 +64,14 @@ PanicUnpack ( while (PackedSize >= 7) { CopyMem (&Sequence, PackedWalker, 7); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 0, 7 * 0 + 6); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 1, 7 * 1 + 6); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 2, 7 * 2 + 6); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 3, 7 * 3 + 6); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 4, 7 * 4 + 6); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 5, 7 * 5 + 6); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 6, 7 * 6 + 6); - *UnpackedWalker++ = BitFieldRead64 (Sequence, 7 * 7, 7 * 7 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 0, 7 * 0 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 1, 7 * 1 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 2, 7 * 2 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 3, 7 * 3 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 4, 7 * 4 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 5, 7 * 5 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 6, 7 * 6 + 6); + *UnpackedWalker++ = (UINT8) BitFieldRead64 (Sequence, 7 * 7, 7 * 7 + 6); PackedWalker += 7; PackedSize -= 7; }