\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
\r
BytesRemain--;\r
}\r
+ //\r
+ // Once mOutBuf is fully filled, directly return\r
+ //\r
+ if (Sd->mOutBuf >= Sd->mOrigSize) {\r
+ goto Done;\r
+ }\r
}\r
}\r
\r