Blame SOURCES/edk2-MdePkg-BaseUefiDecompressLib-Fix-UEFI-Decompression-.patch

cc9195
From c46469847b68f6a1a5b42feaf0de7a83fd0bed85 Mon Sep 17 00:00:00 2001
cc9195
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>
cc9195
Date: Wed, 9 Jan 2019 17:10:06 +0100
cc9195
Subject: [PATCH 2/4] MdePkg BaseUefiDecompressLib: Fix UEFI Decompression
cc9195
 logic issue
cc9195
MIME-Version: 1.0
cc9195
Content-Type: text/plain; charset=UTF-8
cc9195
Content-Transfer-Encoding: 8bit
cc9195
cc9195
Message-id: <20190109161007.3471-3-philmd@redhat.com>
cc9195
Patchwork-id: 83923
cc9195
O-Subject:  [RHEL8 edk2 PATCH 2/3] MdePkg BaseUefiDecompressLib: Fix UEFI
cc9195
	Decompression logic issue
cc9195
Bugzilla: 1662184
cc9195
Acked-by: Laszlo Ersek <lersek@redhat.com>
cc9195
Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
cc9195
cc9195
From: Liming Gao <liming.gao@intel.com>
cc9195
cc9195
https://bugzilla.tianocore.org/show_bug.cgi?id=1317
cc9195
cc9195
This is a regression issue caused by 2ec7953d49677142c5f7552e9e3d96fb406ba0c4.
cc9195
In Decode() function, once mOutBuf is fully filled, Decode() should return.
cc9195
Current logic misses the checker of mOutBuf after while() loop.
cc9195
cc9195
Contributed-under: TianoCore Contribution Agreement 1.1
cc9195
Signed-off-by: Liming Gao <liming.gao@intel.com>
cc9195
Cc: Michael Kinney <michael.d.kinney@intel.com>
cc9195
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
cc9195
(cherry picked from commit 1c4cecc9fd314de0dce8125b0d4b45967637a401)
cc9195
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
cc9195
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
cc9195
---
cc9195
 MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c | 6 ++++++
cc9195
 1 file changed, 6 insertions(+)
cc9195
cc9195
diff --git a/MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c b/MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c
cc9195
index 0c6b1fe..8c30e97 100644
cc9195
--- a/MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c
cc9195
+++ b/MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c
cc9195
@@ -641,6 +641,12 @@ Decode (
cc9195
 
cc9195
         BytesRemain--;
cc9195
       }
cc9195
+      //
cc9195
+      // Once mOutBuf is fully filled, directly return
cc9195
+      //
cc9195
+      if (Sd->mOutBuf >= Sd->mOrigSize) {
cc9195
+        goto Done;
cc9195
+      }
cc9195
     }
cc9195
   }
cc9195
 
cc9195
-- 
cc9195
1.8.3.1
cc9195