From b0cc4801a294a67648c4f2b8232e3e1212c0fe43 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 2 Apr 2025 04:20:56 -0700 Subject: syz-manager: fix panic in debug mode When running in debug mode, mgr.vmPool.Count()-mgr.cfg.FuzzingVMs can become negative even for a valid config since we reduce number of VMs to 1. NewReproLoop panics when VM count argument is negative since it passes it to make chan. Cap number of repro VMs at 0. --- syz-manager/manager.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/syz-manager/manager.go b/syz-manager/manager.go index a6bdbd5ae..28c9ecb12 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -359,7 +359,8 @@ func RunManager(mode *Mode, cfg *mgrconfig.Config) { } mgr.pool = vm.NewDispatcher(mgr.vmPool, mgr.fuzzerInstance) mgr.http.Pool = mgr.pool - mgr.reproLoop = manager.NewReproLoop(mgr, mgr.vmPool.Count()-mgr.cfg.FuzzingVMs, mgr.cfg.DashboardOnlyRepro) + reproVMs := max(0, mgr.vmPool.Count()-mgr.cfg.FuzzingVMs) + mgr.reproLoop = manager.NewReproLoop(mgr, reproVMs, mgr.cfg.DashboardOnlyRepro) mgr.http.ReproLoop = mgr.reproLoop mgr.http.TogglePause = mgr.pool.TogglePause -- cgit mrf-deployment