diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-02 14:49:52 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-02 14:49:52 +0200 |
commit | bee08e26cc02149c46eca8016fef872ddf7d41cb (patch) | |
tree | ceed48219b84ecd392573dff216b1f293f7e33ae | |
parent | service: fix ooo (diff) | |
download | wireguard-windows-bee08e26cc02149c46eca8016fef872ddf7d41cb.tar.xz wireguard-windows-bee08e26cc02149c46eca8016fef872ddf7d41cb.zip |
service: correct sid bounds
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | service/service_manager.go | 3 |
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) { |