From b397fe3ad8ed895c98fa54584f61835a88e65ff5 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 1 Oct 2019 22:21:21 +0200 Subject: [PATCH] windows/svc: use CloseServiceHandle for service handles From MSDN on CreateServiceW: The returned handle is only valid for the process that called CreateService. It can be closed by calling the CloseServiceHandle function. This isn't an actual kernel object to be closed with CloseHandle. Change-Id: Iee225a666576d57a6c4864abef20206d54cbbce2 Reviewed-on: https://go-review.googlesource.com/c/sys/+/198298 Run-TryBot: Jason A. Donenfeld TryBot-Result: Gobot Gobot Reviewed-by: Alex Brainman Reviewed-by: Jason A. Donenfeld --- windows/svc/mgr/mgr.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/svc/mgr/mgr.go b/windows/svc/mgr/mgr.go index 8d1cfd8b..33944d0f 100644 --- a/windows/svc/mgr/mgr.go +++ b/windows/svc/mgr/mgr.go @@ -137,7 +137,7 @@ func (m *Mgr) CreateService(name, exepath string, c Config, args ...string) (*Se err = updateSidType(h, c.SidType) if err != nil { windows.DeleteService(h) - windows.CloseHandle(h) + windows.CloseServiceHandle(h) return nil, err } } @@ -145,7 +145,7 @@ func (m *Mgr) CreateService(name, exepath string, c Config, args ...string) (*Se err = updateDescription(h, c.Description) if err != nil { windows.DeleteService(h) - windows.CloseHandle(h) + windows.CloseServiceHandle(h) return nil, err } } @@ -153,7 +153,7 @@ func (m *Mgr) CreateService(name, exepath string, c Config, args ...string) (*Se err = updateStartUp(h, c.DelayedAutoStart) if err != nil { windows.DeleteService(h) - windows.CloseHandle(h) + windows.CloseServiceHandle(h) return nil, err } }