in netbsd32_elf32_probe(), 'pos' is really a pointer to an Elf_Addr, not a
vaddr_t. cast the pointer before dereferencing it to avoid the alignment fault that broke compat_netbsd32, cuz pos is defined like: Elf_Addr phdr = 0, pos = 0; in exec_elf32.c.
This commit is contained in:
parent
a30c8f9027
commit
7af8b6448c
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: netbsd32_exec.c,v 1.24 2000/11/27 17:25:25 jdolecek Exp $ */
|
/* $NetBSD: netbsd32_exec.c,v 1.25 2000/12/01 08:59:02 mrg Exp $ */
|
||||||
/* from: NetBSD: exec_aout.c,v 1.15 1996/09/26 23:34:46 cgd Exp */
|
/* from: NetBSD: exec_aout.c,v 1.15 1996/09/26 23:34:46 cgd Exp */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -116,7 +116,7 @@ ELFNAME2(netbsd32,probe)(p, epp, eh, itp, pos)
|
||||||
free((void *)bp, M_TEMP);
|
free((void *)bp, M_TEMP);
|
||||||
}
|
}
|
||||||
epp->ep_flags |= EXEC_32;
|
epp->ep_flags |= EXEC_32;
|
||||||
*pos = ELFDEFNNAME(NO_ADDR);
|
*(Elf_Addr *)pos = ELFDEFNNAME(NO_ADDR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue