Disassembler - block disassembler endless loop. Ifever the disassembler returns a bad instruction size of zero, the block disassembly could loop forever.
diff --git a/agent/tcf/services/disassembly.c b/agent/tcf/services/disassembly.c index fad84be..0295b4d 100644 --- a/agent/tcf/services/disassembly.c +++ b/agent/tcf/services/disassembly.c
@@ -213,7 +213,8 @@ disassembler_ok = 1; } if (disassembler) dr = disassembler(mem_buf + (size_t)offs, addr, size, ¶m); - if (dr == NULL) { + /* To avoid looping forever, better check for instrcution size */ + if ((dr == NULL) || (dr != NULL && dr->size == 0)){ static char buf[32]; static DisassemblyResult dd; memset(&dd, 0, sizeof(dd));