summaryrefslogtreecommitdiffstats
path: root/sys/kern/link_elf.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.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.c')
-rw-r--r--sys/kern/link_elf.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c
index 5679cbf..db3de57 100644
--- a/sys/kern/link_elf.c
+++ b/sys/kern/link_elf.c
@@ -704,7 +704,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,
(vm_offset_t *) &ef->address,
@@ -884,7 +883,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);
}
#else
if (ef->address)
OpenPOWER on IntegriCloud