From: Peter Dinda Date: Fri, 17 Aug 2012 21:01:47 +0000 (-0500) Subject: Avoid corruption when freeing a guest fails X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=3c1a150e4bdf5bd3a8b572dd2021ba95cbb35f1a;p=palacios.releases.git Avoid corruption when freeing a guest fails --- diff --git a/linux_module/main.c b/linux_module/main.c index efaa20e..fdab7b3 100644 --- a/linux_module/main.c +++ b/linux_module/main.c @@ -150,7 +150,11 @@ out_err: INFO("Freeing VM (%s) (%p)\n", guest->name, guest); - free_palacios_vm(guest); + if (free_palacios_vm(guest)<0) { + ERROR("Cannot free guest at index %ld\n",vm_idx); + return -1; + } + guest_map[vm_idx] = NULL; break; } diff --git a/linux_module/vm.c b/linux_module/vm.c index 624cc39..5584b38 100644 --- a/linux_module/vm.c +++ b/linux_module/vm.c @@ -434,7 +434,9 @@ out_err: int free_palacios_vm(struct v3_guest * guest) { - v3_free_vm(guest->v3_ctx); + if (v3_free_vm(guest->v3_ctx)<0) { + return -1; + } device_destroy(v3_class, guest->vm_dev);