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, &param);
-        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));