exec_init() should be able to handle a 64bit init process
Currently exec_init() assumes the init process is 32bit. If the init process is 64bit (as is the case when bhyve is re-exec'ed) it will truncate addresses to 32bit, leading EFAULT in copyout() of the argument vector.
Updated by Hans Rosenfeld almost 3 years ago
Testing: I've been running with this change for a while. I've verified the system still boots and init gets all supplied arguments. I have also verified that zones of various brands still work (smartos, LX, bhyve), so the existing 32bit support still works as it did before. The 64bit case was tested in conjunction with bhyve zones on SmartOS, bhyve can be re-exec'd as expected when a VM is rebooted from within.
Updated by Electric Monk over 2 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
commit 35b5a2ef2c05b7c6ccdf28298cd7c084c454649d Author: Hans Rosenfeld <email@example.com> Date: 2018-09-26T19:30:14.000Z 9798 exec_init() should be able to handle a 64bit init process Reviewed by: John Levon <firstname.lastname@example.org> Reviewed by: Jerry Jelinek <email@example.com> Reviewed by: Patrick Mooney <firstname.lastname@example.org> Reviewed by: Toomas Soome <email@example.com> Reviewed by: Andy Fiddaman <firstname.lastname@example.org> Reviewed by: Garrett D'Amore <email@example.com> Approved by: Garrett D'Amore <firstname.lastname@example.org>