diff options
author | alc <alc@FreeBSD.org> | 2005-08-28 04:50:11 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2005-08-28 04:50:11 +0000 |
commit | dfddcf2af4d45f1761ceec33ba7c2f9b393df571 (patch) | |
tree | 77ec263d5a95bff5f6215856fad2a5d4e2739a77 /sys/kern/link_elf.c | |
parent | 826c1863662c205cea42d48bea2c77ea1980e735 (diff) | |
download | FreeBSD-src-dfddcf2af4d45f1761ceec33ba7c2f9b393df571.zip FreeBSD-src-dfddcf2af4d45f1761ceec33ba7c2f9b393df571.tar.gz |
Correctly handle vm_map_wire()'s failure. (See also revisions 1.81 and
1.82.)
Reviewed by: tegge
Diffstat (limited to 'sys/kern/link_elf.c')
-rw-r--r-- | sys/kern/link_elf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c index db3de57..d280908 100644 --- a/sys/kern/link_elf.c +++ b/sys/kern/link_elf.c @@ -742,10 +742,14 @@ link_elf_load_file(linker_class_t cls, const char* filename, /* * Wire down the pages */ - vm_map_wire(kernel_map, + error = vm_map_wire(kernel_map, (vm_offset_t) segbase, (vm_offset_t) segbase + segs[i]->p_memsz, VM_MAP_WIRE_SYSTEM|VM_MAP_WIRE_NOHOLES); + if (error != KERN_SUCCESS) { + error = ENOMEM; + goto out; + } #endif } |