lib: launch: cleanup local exec vm-region once load is complete
This commit is contained in:
@@ -190,7 +190,10 @@ static kern_status_t create_exec_regions(struct elf_image *image)
|
||||
}
|
||||
|
||||
if (status != KERN_OK) {
|
||||
/* TODO cleanup e_local_exec */
|
||||
vm_region_kill(image->e_local_exec);
|
||||
kern_handle_close(image->e_local_exec);
|
||||
image->e_local_exec = KERN_HANDLE_INVALID;
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -478,7 +481,10 @@ void elf_image_init(struct elf_image *out)
|
||||
{
|
||||
memset(out, 0x0, sizeof(*out));
|
||||
|
||||
kern_config_get(KERN_CFG_PAGE_SIZE, &out->e_page_size, sizeof out->e_page_size);
|
||||
kern_config_get(
|
||||
KERN_CFG_PAGE_SIZE,
|
||||
&out->e_page_size,
|
||||
sizeof out->e_page_size);
|
||||
out->e_image = KERN_HANDLE_INVALID;
|
||||
out->e_data = KERN_HANDLE_INVALID;
|
||||
out->e_local_space = KERN_HANDLE_INVALID;
|
||||
@@ -543,6 +549,7 @@ void elf_image_cleanup(struct elf_image *image)
|
||||
{
|
||||
vm_region_unmap_relative(image->e_local_exec, 0, image->e_total_size);
|
||||
kern_handle_close(image->e_data);
|
||||
vm_region_kill(image->e_local_exec);
|
||||
kern_handle_close(image->e_local_exec);
|
||||
kern_handle_close(image->e_remote_exec);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user