From 8bb8671f1e60c748d03889d4595a7bae5eff25c2 Mon Sep 17 00:00:00 2001 From: Zeex Date: Mon, 22 Dec 2014 23:27:49 +0600 Subject: [PATCH] pawndisasm: Fix crash when loading debug info This complements commit 8383e5bbbf0ead53ce198cca276eba441535ca59. Fixes #38. --- source/amx/amxdbg.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/amx/amxdbg.c b/source/amx/amxdbg.c index 069f0d3..b100d28 100644 --- a/source/amx/amxdbg.c +++ b/source/amx/amxdbg.c @@ -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) */