diff options
author | alc <alc@FreeBSD.org> | 2005-08-28 00:24:58 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2005-08-28 00:24:58 +0000 |
commit | ecb497dd8749b74b43e135caafbb86e7e1bff855 (patch) | |
tree | e40846ce31ed7790da7b196613b427e96a82dd1c /sys/kern/link_elf.c | |
parent | 597f2facce5b3d33143ba51c46fbca07dc9dbbed (diff) | |
download | FreeBSD-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.c | 2 |
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) |