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:
parent
f0a240aa46
commit
0c7758a555
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue