From 2ae65ae471c9d51d343f401da16c05b98b99a842 Mon Sep 17 00:00:00 2001 From: Daniel Hiltgen Date: Fri, 6 Jun 2025 14:06:09 -0700 Subject: [PATCH] win: handle more than 2048 processes (#10997) Fix an array out of bounds crash --- cmd/start_windows.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/start_windows.go b/cmd/start_windows.go index bcc51057..1b648d9d 100644 --- a/cmd/start_windows.go +++ b/cmd/start_windows.go @@ -74,7 +74,16 @@ func isProcRunning(procName string) []uint32 { slog.Debug("failed to check for running installers", "error", err) return nil } - pids = pids[:ret] + if ret > uint32(len(pids)) { + pids = make([]uint32, ret+10) + if err := windows.EnumProcesses(pids, &ret); err != nil || ret == 0 { + slog.Debug("failed to check for running installers", "error", err) + return nil + } + } + if ret < uint32(len(pids)) { + pids = pids[:ret] + } var matches []uint32 for _, pid := range pids { if pid == 0 {