diff options
author | jake <jake@FreeBSD.org> | 2003-06-15 19:16:43 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2003-06-15 19:16:43 +0000 |
commit | fc203320de2c12fe6f2f78957ade3053f9a1c9ff (patch) | |
tree | 3eda775fb2ccbd1a9aaabd707cedeba5c7ae185b /sys/boot/sparc64/loader | |
parent | 6fcb2a22628b84d9feb0766005f520271e87b174 (diff) | |
download | FreeBSD-src-fc203320de2c12fe6f2f78957ade3053f9a1c9ff.zip FreeBSD-src-fc203320de2c12fe6f2f78957ade3053f9a1c9ff.tar.gz |
Remember to release the loader's heap.
Reviewed by: tmm
Diffstat (limited to 'sys/boot/sparc64/loader')
-rw-r--r-- | sys/boot/sparc64/loader/main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/boot/sparc64/loader/main.c b/sys/boot/sparc64/loader/main.c index 08c0d96..63d591d 100644 --- a/sys/boot/sparc64/loader/main.c +++ b/sys/boot/sparc64/loader/main.c @@ -222,6 +222,7 @@ __elfN(exec)(struct preloaded_file *fp) { struct file_metadata *fmp; vm_offset_t mdp; + Elf_Addr entry; Elf_Ehdr *e; int error; @@ -238,7 +239,12 @@ __elfN(exec)(struct preloaded_file *fp) pmap_print_tlb('i'); pmap_print_tlb('d'); #endif - ((kernel_entry_t *)e->e_entry)(mdp, 0, 0, 0, openfirmware); + + entry = e->e_entry; + + OF_release(heapva, HEAPSZ); + + ((kernel_entry_t *)entry)(mdp, 0, 0, 0, openfirmware); panic("exec returned"); } |