CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2025/05/12 11:17:42
Modified files:
usr.sbin/vmd : config.c control.c priv.c proc.c proc.h
vioblk.c vionet.c virtio.c virtio.h vm.c
vm_agentx.c vmd.c vmd.h vmm.c
Log message:
vmd(8): make imsg objects opaque and sanitize char[]s.
vmd directly manipulated the inner members of imsg's throughout the
codebase. Given a report of unchecked usage of some particular
structs passed via imsg, this commit cleans up the imsg usage as
well as santizes the embedded char[]'s in structs passed via imsg.
All imsg metadata and data access now go through the imsg api (e.g.
imsg_get_data(3)) and unmarshalling is handled in centralized
locations with size checking and insertion of NUL-terminators in
any char[]s.
The result is no functional or behavioral change to vmd, but now
all imsg's are treated opaquely and data santization is in a single
function per type.
NUL-termination issues reported by S. Ai, H. Lefeuvre, Systopia
team.
Review and guidance from claudio@.
ok claudio@