From 1a72b58daab02fe2e35548e64396bdab8d433b78 Mon Sep 17 00:00:00 2001 From: Thomas Ilsche Date: Wed, 29 Mar 2017 00:44:36 +0200 Subject: [PATCH] fix NULL deref on failed strbuf_new and memory leak in r_asm_mdisassemble (#7163) --- libr/asm/asm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libr/asm/asm.c b/libr/asm/asm.c index 1f6579f618..188ed7838b 100644 --- a/libr/asm/asm.c +++ b/libr/asm/asm.c @@ -562,11 +562,10 @@ R_API RAsmCode* r_asm_mdisassemble(RAsm *a, const ut8 *buf, int len) { return r_asm_code_free (acode); } r_hex_bin2str (buf, len, acode->buf_hex); - if (!(acode->buf_asm = malloc (4))) { + if (!(buf_asm = r_strbuf_new (NULL))) { return r_asm_code_free (acode); } - buf_asm = r_strbuf_new (NULL); - for (idx = ret = slen = 0, acode->buf_asm[0] = '\0'; idx < len; idx += ret) { + for (idx = ret = slen = 0; idx < len; idx += ret) { r_asm_set_pc (a, pc + idx); ret = r_asm_disassemble (a, &op, buf + idx, len - idx); if (ret < 1) {