diff --git a/sys/i386/i386_exec.c b/sys/i386/i386_exec.c index 7831ca3..176e41e 100644 --- a/sys/i386/i386_exec.c +++ b/sys/i386/i386_exec.c @@ -719,12 +719,16 @@ for (dynp = ef->dynamic; dynp->d_tag != 0x0; dynp++) { switch (dynp->d_tag) { case DT_NEEDED: + asm("nop"); break; case DT_INIT: + asm("nop"); break; case DT_FINI: + asm("nop"); break; case DT_HASH: + asm("nop"); /* From src/libexec/rtld-elf/rtld.c */ const Elf32_Hashelt *hashtab = (const Elf32_Hashelt *) (ef->address + dynp->d_un.d_ptr); ef->nbuckets = hashtab[0]; diff --git a/sys/kernel/elf.c b/sys/kernel/elf.c index ea95ddf..da3be43 100644 --- a/sys/kernel/elf.c +++ b/sys/kernel/elf.c @@ -125,8 +125,8 @@ *entry = binaryHeader->e_entry + real_base_addr; - free(binaryHeader); - free(programHeader); + kfree(binaryHeader); + kfree(programHeader); return (0x0); }