Fix stack overflow in zlib decompress routine.
This commit is contained in:
parent
7974bd5cd0
commit
4a0c4ec609
@ -50,11 +50,11 @@ namespace Utils
|
|||||||
|
|
||||||
if (inflateInit(&stream) != Z_OK)
|
if (inflateInit(&stream) != Z_OK)
|
||||||
{
|
{
|
||||||
return buffer;
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
uint8_t dest[CHUNK] = { 0 };
|
uint8_t* dest = new uint8_t[CHUNK];
|
||||||
const char* dataPtr = data.data();
|
const char* dataPtr = data.data();
|
||||||
|
|
||||||
do
|
do
|
||||||
@ -71,6 +71,8 @@ namespace Utils
|
|||||||
if (ret == Z_STREAM_ERROR)
|
if (ret == Z_STREAM_ERROR)
|
||||||
{
|
{
|
||||||
inflateEnd(&stream);
|
inflateEnd(&stream);
|
||||||
|
delete[] dest;
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.append(reinterpret_cast<const char*>(dest), CHUNK - stream.avail_out);
|
buffer.append(reinterpret_cast<const char*>(dest), CHUNK - stream.avail_out);
|
||||||
@ -81,6 +83,8 @@ namespace Utils
|
|||||||
|
|
||||||
inflateEnd(&stream);
|
inflateEnd(&stream);
|
||||||
|
|
||||||
|
delete[] dest;
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user