]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg/BaseUefiDecompressLib: Improve performance of boundary validation
authorShenglei Zhang <shenglei.zhang@intel.com>
Mon, 25 Feb 2019 05:55:54 +0000 (13:55 +0800)
committerLiming Gao <liming.gao@intel.com>
Wed, 27 Mar 2019 12:11:22 +0000 (20:11 +0800)
The boundary validation checking in MakeTable() performs on
every loop iteration. This could be improved by checking
just once before the loop.
https://bugzilla.tianocore.org/show_bug.cgi?id=1329

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c

index c1e8c5581a04b5db2a3a537cb533e7d542462a68..3d5b7a737ad6fa88d56d418b54536a582ec6b143 100644 (file)
@@ -222,10 +222,11 @@ MakeTable (
 \r
     if (Len <= TableBits) {\r
 \r
+      if (Start[Len] >= NextCode || NextCode > MaxTableLength){\r
+        return (UINT16) BAD_TABLE;\r
+      }\r
+\r
       for (Index = Start[Len]; Index < NextCode; Index++) {\r
-        if (Index >= MaxTableLength) {\r
-          return (UINT16) BAD_TABLE;\r
-        }\r
         Table[Index] = Char;\r
       }\r
 \r