aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/service/service_manager.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-05-02 14:49:52 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-02 14:49:52 +0200
commitbee08e26cc02149c46eca8016fef872ddf7d41cb (patch)
treeceed48219b84ecd392573dff216b1f293f7e33ae /service/service_manager.go
parentservice: fix ooo (diff)
downloadwireguard-windows-bee08e26cc02149c46eca8016fef872ddf7d41cb.tar.xz
wireguard-windows-bee08e26cc02149c46eca8016fef872ddf7d41cb.zip
service: correct sid bounds
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r--service/service_manager.go3
1 files changed, 1 insertions, 2 deletions
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) {