Browse Source

Fix zlib inout variables to not crash things

Branan Purvine-Riley 13 years ago
parent
commit
e8b6c424d7
  1. 4
      Sources/Plasma/PubUtilLib/plCompression/plZlibCompress.cpp

4
Sources/Plasma/PubUtilLib/plCompression/plZlibCompress.cpp

@ -46,7 +46,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
hsBool plZlibCompress::Uncompress(UInt8* bufOut, UInt32* bufLenOut, const UInt8* bufIn, UInt32 bufLenIn) hsBool plZlibCompress::Uncompress(UInt8* bufOut, UInt32* bufLenOut, const UInt8* bufIn, UInt32 bufLenIn)
{ {
unsigned long buflen_out; unsigned long buflen_out = *bufLenOut;
bool result = (uncompress(bufOut, &buflen_out, bufIn, bufLenIn) == Z_OK); bool result = (uncompress(bufOut, &buflen_out, bufIn, bufLenIn) == Z_OK);
*bufLenOut = buflen_out; *bufLenOut = buflen_out;
return result; return result;
@ -56,7 +56,7 @@ hsBool plZlibCompress::Compress(UInt8* bufOut, UInt32* bufLenOut, const UInt8* b
{ {
// according to compress doc, the bufOut buffer should be at least .1% larger than source buffer, plus 12 bytes. // according to compress doc, the bufOut buffer should be at least .1% larger than source buffer, plus 12 bytes.
hsAssert(*bufLenOut>=(int)(bufLenIn*1.1+12), "bufOut compress buffer is not large enough"); hsAssert(*bufLenOut>=(int)(bufLenIn*1.1+12), "bufOut compress buffer is not large enough");
unsigned long buflen_out; unsigned long buflen_out = *bufLenOut;
bool result = (compress(bufOut, &buflen_out, bufIn, bufLenIn) == Z_OK); bool result = (compress(bufOut, &buflen_out, bufIn, bufLenIn) == Z_OK);
*bufLenOut = buflen_out; *bufLenOut = buflen_out;
return result; return result;

Loading…
Cancel
Save