Fix undefined behavior when disassembling ud0 x86 instructions (#1032)

* fix undefined behavior due to uninitialized memory

* fix bad calloc call
diff --git a/MCInst.c b/MCInst.c
index d521845..cc062d0 100644
--- a/MCInst.c
+++ b/MCInst.c
@@ -16,6 +16,7 @@
 
 void MCInst_Init(MCInst *inst)
 {
+	inst->Opcode = 0;
 	inst->OpcodePub = 0;
 	inst->size = 0;
 	inst->has_imm = false;
diff --git a/utils.c b/utils.c
index ca2a7ec..461b00a 100644
--- a/utils.c
+++ b/utils.c
@@ -17,7 +17,7 @@
 	unsigned short max_id = insns[size - 1].id;
 	unsigned short i;
 
-	unsigned short *cache = (unsigned short *)cs_mem_malloc(sizeof(*cache) * (max_id + 1));
+	unsigned short *cache = (unsigned short *)cs_mem_calloc(max_id + 1, sizeof(*cache));
 
 	for (i = 1; i < size; i++)
 		cache[insns[i].id] = i;