From 3dd893d8f0443d32da23d6979549b65e428a2583 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Sat, 16 Mar 2019 02:50:33 -0600 Subject: manager: CreateWellKnownSid is upstreamed now Signed-off-by: Jason A. Donenfeld --- service/service_manager.go | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) (limited to 'service/service_manager.go') diff --git a/service/service_manager.go b/service/service_manager.go index 91bb593d..5f9758ec 100644 --- a/service/service_manager.go +++ b/service/service_manager.go @@ -53,33 +53,9 @@ type wtsSessionInfo struct { type wellKnownSidType uint32 -const ( - winBuiltinAdministratorsSid wellKnownSidType = 26 -) - //sys wtfQueryUserToken(session uint32, token *windows.Token) (err error) = wtsapi32.WTSQueryUserToken //sys wtsEnumerateSessions(handle windows.Handle, reserved uint32, version uint32, sessions **wtsSessionInfo, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW //sys wtsFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory -//sys createWellKnownSid(sidType wellKnownSidType, domainSid *windows.SID, sid *windows.SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid - -//TODO: Upstream this to x/sys/windows -func localWellKnownSid(sidType wellKnownSidType) (*windows.SID, error) { - n := uint32(50) - for { - b := make([]byte, n) - sid := (*windows.SID)(unsafe.Pointer(&b[0])) - err := createWellKnownSid(sidType, nil, sid, &n) - if err == nil { - return sid, nil - } - if err != windows.ERROR_INSUFFICIENT_BUFFER { - return nil, err - } - if n <= uint32(len(b)) { - return nil, err - } - } -} type managerService struct{} @@ -135,7 +111,7 @@ func (service *managerService) Execute(args []string, r <-chan svc.ChangeRequest return } - adminSid, err := localWellKnownSid(winBuiltinAdministratorsSid) + adminSid, err := windows.CreateWellKnownSid(windows.WinBuiltinAdministratorsSid) if err != nil { serviceError = ErrorFindAdministratorsSID return -- cgit v1.2.3-59-g8ed1b