pawndisasm: Fix crash when loading debug info

This complements commit 8383e5bbbf0ead53ce198cca276eba441535ca59.

Fixes #38.
This commit is contained in:
Zeex 2014-12-22 23:27:49 +06:00
parent 531d72d8cc
commit 8bb8671f1e

View File

@ -144,20 +144,19 @@ int AMXAPI dbg_LoadInfo(AMX_DBG *amxdbg, FILE *fp)
amx_Align32((uint32_t*)&amxdbg->linetbl[index].line);
} /* for */
#endif
ptr += dbghdr.lines * sizeof(AMX_DBG_LINE);
ptr += (uint16_t)dbghdr.lines * sizeof(AMX_DBG_LINE);
/* detect dbghdr.lines overflow */
while ((line = (AMX_DBG_LINE *)ptr)
&& (cell)line->address > (cell)(line - 1)->address) {
dbghdr.lines = -1;
#if BYTE_ORDER==BIG_ENDIAN
for (index = 0; index <= dbghdr.lines; index++) {
for (index = 0; index <= UINT16_MAX; index++) {
amx_AlignCell(&linetbl[index].address);
amx_Align32((uint32_t*)&linetbl[index].line);
line++;
} /* for */
#endif
ptr += ((uint32_t)dbghdr.lines + 1) * sizeof(AMX_DBG_LINE);
ptr += ((uint32_t)UINT16_MAX + 1) * sizeof(AMX_DBG_LINE);
} /* while */
/* symbol table (plus index tags) */