From: Erik van der Kouwe Date: Sat, 12 Mar 2011 07:45:11 +0000 (-0600) Subject: This patch prevents v3_delete_mem_region from freeing memory when it still needs... X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=83bd28a67ecaaa7dfd9db4c459485cf8af07d4a5;p=palacios.git This patch prevents v3_delete_mem_region from freeing memory when it still needs to be read. --- diff --git a/palacios/src/palacios/vmm_mem.c b/palacios/src/palacios/vmm_mem.c index 64c83c7..c43dcae 100644 --- a/palacios/src/palacios/vmm_mem.c +++ b/palacios/src/palacios/vmm_mem.c @@ -414,13 +414,13 @@ void v3_delete_mem_region(struct v3_vm_info * vm, struct v3_mem_region * reg) { v3_rb_erase(&(reg->tree_node), &(vm->mem_map.mem_regions)); - V3_Free(reg); // If the guest isn't running then there shouldn't be anything to invalidate. // Page tables should __always__ be created on demand during execution // NOTE: This is a sanity check, and can be removed if that assumption changes if (vm->run_state != VM_RUNNING) { + V3_Free(reg); return; } @@ -457,6 +457,8 @@ void v3_delete_mem_region(struct v3_vm_info * vm, struct v3_mem_region * reg) { } } + V3_Free(reg); + // flush virtual page tables // 3 cases shadow, shadow passthrough, and nested