about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCamille Mougey <camille.mougey@cea.fr>2015-02-23 14:13:12 +0100
committerCamille Mougey <camille.mougey@cea.fr>2015-02-23 14:13:12 +0100
commit2e30b5ff28cdab464a254f7444f3cda57bc84e87 (patch)
treed6d1b58b799159e870b5f967135e2e0a03669242
parentffe78d3adb4a13fa27c4064f78aebcaff6be72c9 (diff)
downloadmiasm-2e30b5ff28cdab464a254f7444f3cda57bc84e87.tar.gz
miasm-2e30b5ff28cdab464a254f7444f3cda57bc84e87.zip
VmMngrPy: resource leak (`mpn`, `mpn->ad_hp`) if "known page in memory"
-rw-r--r--miasm2/jitter/vm_mngr_py.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/miasm2/jitter/vm_mngr_py.c b/miasm2/jitter/vm_mngr_py.c
index 474c974e..d9257b1d 100644
--- a/miasm2/jitter/vm_mngr_py.c
+++ b/miasm2/jitter/vm_mngr_py.c
@@ -157,8 +157,11 @@ PyObject* vm_add_memory_page(VmMngr* self, PyObject* args)
 	mpn = create_memory_page_node(page_addr, buf_size, page_access);
 	if (mpn == NULL)
 		RAISE(PyExc_TypeError,"cannot create page");
-	if (is_mpn_in_tab(&self->vm_mngr, mpn))
+	if (is_mpn_in_tab(&self->vm_mngr, mpn)) {
+		free(mpn->ad_hp);
+		free(mpn);
 		RAISE(PyExc_TypeError,"known page in memory");
+	}
 
 	memcpy(mpn->ad_hp, buf_data, buf_size);
 	add_memory_page(&self->vm_mngr, mpn);