Fix occasional luac.cross crash (#2661)

A block of memory is accessed after having been freed. This was obscured by the fact that 'oBuf' is a pointer into the middle of the block 'dynamicTables', so when dynamicTables is freed, oBuf is pointing to freed memory. Occasionally, luac.cross would crash because of this.
This commit is contained in:
ziggurat29 2019-02-12 15:30:54 -06:00 committed by Marcel Stör
parent f0a240aa46
commit 0c7758a555
1 changed files with 2 additions and 1 deletions

View File

@ -568,7 +568,6 @@ int uzlib_compress (uchar **dest, uint *destLen, const uchar *src, uint srcLen)
status = UZLIB_OK;
}
FREE(dynamicTables);
for (i=0; i<20;i++) DBG_PRINT("count %u = %u\n",i,debugCounts[i]);
if (status == UZLIB_OK) {
@ -581,5 +580,7 @@ int uzlib_compress (uchar **dest, uint *destLen, const uchar *src, uint srcLen)
FREE(oBuf->buffer);
}
FREE(dynamicTables);
return status;
}