From 6f815c45465942e8da935b6fc7fdac101c07a82f Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Thu, 2 Jul 2026 08:48:23 +0100 Subject: [PATCH] vmm: config: Check NetConfig::socket set if vhost_user is set This check was already included in the DiskConfig validation but missing for NetConfig. Signed-off-by: Rob Bradford --- vmm/src/config.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vmm/src/config.rs b/vmm/src/config.rs index 88e2d9640..dbd0d2a5e 100644 --- a/vmm/src/config.rs +++ b/vmm/src/config.rs @@ -3206,6 +3206,9 @@ impl VmConfig { if net.vhost_user && !self.backed_by_shared_memory() { return Err(ValidationError::VhostUserRequiresSharedMemory); } + if net.vhost_user && net.vhost_socket.is_none() { + return Err(ValidationError::VhostUserMissingSocket); + } if net.vhost_user && net.rate_limiter_config.is_some() { return Err(ValidationError::VhostUserRateLimiterNotSupported); } @@ -5639,6 +5642,17 @@ id=\"{id}\",pci_segment={pci_segment},queue_sizes={queue_sizes}" Err(ValidationError::VhostUserRequiresSharedMemory) ); + let mut invalid_config = valid_config.clone(); + invalid_config.memory.shared = true; + invalid_config.net = Some(vec![NetConfig { + vhost_user: true, + ..net_fixture() + }]); + assert_eq!( + invalid_config.validate(), + Err(ValidationError::VhostUserMissingSocket) + ); + let mut still_valid_config = valid_config.clone(); still_valid_config.net = Some(vec![NetConfig { vhost_user: true,