vmd(8): gracefully handle hitting data limits when starting a vm
authordv <dv@openbsd.org>
Tue, 1 Mar 2022 21:46:19 +0000 (21:46 +0000)
committerdv <dv@openbsd.org>
Tue, 1 Mar 2022 21:46:19 +0000 (21:46 +0000)
commitfbbcf6cd7f4e83fd29136932eef4302a302baa70
treea6aa266c049fd224e816ccc36f6389e99b7c2826
parentdefbb6a1a100cf354b8df9b3b5577ffa63a8e97f
vmd(8): gracefully handle hitting data limits when starting a vm

With recent changes to login.conf(5) to restrict daemon datasize
to a finite value, users can now hit resource limits when attempting
to start a vm.

This change fixes the error path when hitting the limit. vmd(8)
will no longer abort and memory error messages are relayed to the
user.

While here, address potential under-reads/writes using atomicio
when relaying data between the child vm process and vmd's vmm
process.

Original diff from tedu@. OK mlarkin@.
usr.sbin/vmd/vm.c
usr.sbin/vmd/vmd.c
usr.sbin/vmd/vmm.c