summaryrefslogtreecommitdiffstats
path: root/sys/kern/link_elf_obj.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2005-08-28 00:24:58 +0000
committeralc <alc@FreeBSD.org>2005-08-28 00:24:58 +0000
commitecb497dd8749b74b43e135caafbb86e7e1bff855 (patch)
treee40846ce31ed7790da7b196613b427e96a82dd1c /sys/kern/link_elf_obj.c
parent597f2facce5b3d33143ba51c46fbca07dc9dbbed (diff)
downloadFreeBSD-src-ecb497dd8749b74b43e135caafbb86e7e1bff855.zip
FreeBSD-src-ecb497dd8749b74b43e135caafbb86e7e1bff855.tar.gz
Eliminate an unneeded reference on a vm object. If, in fact, the nearby
vm_map_find() fails, then the excess reference causes the vm object to be leaked. Reviewed by: tegge
Diffstat (limited to 'sys/kern/link_elf_obj.c')
-rw-r--r--sys/kern/link_elf_obj.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index ad4ea35..da3ea77 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -640,7 +640,6 @@ link_elf_load_file(linker_class_t cls, const char *filename,
error = ENOMEM;
goto out;
}
- vm_object_reference(ef->object);
ef->address = (caddr_t) vm_map_min(kernel_map);
error = vm_map_find(kernel_map, ef->object, 0, &mapbase,
round_page(mapsize), TRUE, VM_PROT_ALL, VM_PROT_ALL, FALSE);
@@ -828,7 +827,6 @@ link_elf_unload_file(linker_file_t file)
vm_map_remove(kernel_map, (vm_offset_t) ef->address,
(vm_offset_t) ef->address +
(ef->object->size << PAGE_SHIFT));
- vm_object_deallocate(ef->object);
}
if (ef->e_shdr)
free(ef->e_shdr, M_LINKER);
OpenPOWER on IntegriCloud