From bee08e26cc02149c46eca8016fef872ddf7d41cb Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 2 May 2019 14:49:52 +0200 Subject: service: correct sid bounds Signed-off-by: Jason A. Donenfeld --- service/service_manager.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'service/service_manager.go') diff --git a/service/service_manager.go b/service/service_manager.go index 12264f1c..4d287c6f 100644 --- a/service/service_manager.go +++ b/service/service_manager.go @@ -164,8 +164,7 @@ func (service *managerService) Execute(args []string, r <-chan svc.ChangeRequest return } p := unsafe.Pointer(&gs.Groups[0]) - //TODO: x/sys/windows/svc/security.go uses 2 << 20, but shouldn't this be 1 << 20? Send upstream - groups := (*[1 << 20]windows.SIDAndAttributes)(p)[:gs.GroupCount] + groups := (*[(1 << 28) - 1]windows.SIDAndAttributes)(p)[:gs.GroupCount] isAdmin := false for _, g := range groups { if windows.EqualSid(g.Sid, adminSid) { -- cgit v1.2.3-59-g8ed1b