aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/elevate
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-09-16 23:36:49 -0600
committerJason A. Donenfeld <Jason@zx2c4.com>2019-09-23 15:29:18 +0200
commit6f66c7697d3bb6a259bf8d0261490cdee0ef8986 (patch)
tree1f123998f801c375674326ba7946da568be32df0 /elevate
parentupdater: use correct length for security attributes (diff)
downloadwireguard-windows-6f66c7697d3bb6a259bf8d0261490cdee0ef8986.tar.xz
wireguard-windows-6f66c7697d3bb6a259bf8d0261490cdee0ef8986.zip
global: use SECURITY_DESCRIPTOR apis from x/sys/windows
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'elevate')
-rw-r--r--elevate/privileges.go8
-rw-r--r--elevate/shellexecute.go3
2 files changed, 4 insertions, 7 deletions
diff --git a/elevate/privileges.go b/elevate/privileges.go
index a02d8a5d..eae0ac3e 100644
--- a/elevate/privileges.go
+++ b/elevate/privileges.go
@@ -14,19 +14,15 @@ import (
)
func DropAllPrivileges(retainDriverLoading bool) error {
- processHandle, err := windows.GetCurrentProcess()
- if err != nil {
- return err
- }
var luid windows.LUID
if retainDriverLoading {
- err = windows.LookupPrivilegeValue(nil, windows.StringToUTF16Ptr("SeLoadDriverPrivilege"), &luid)
+ err := windows.LookupPrivilegeValue(nil, windows.StringToUTF16Ptr("SeLoadDriverPrivilege"), &luid)
if err != nil {
return err
}
}
var processToken windows.Token
- err = windows.OpenProcessToken(processHandle, windows.TOKEN_READ|windows.TOKEN_WRITE, &processToken)
+ err := windows.OpenProcessToken(windows.GetCurrentProcess(), windows.TOKEN_READ|windows.TOKEN_WRITE, &processToken)
if err != nil {
return err
}
diff --git a/elevate/shellexecute.go b/elevate/shellexecute.go
index 2c4190e0..b1dcc155 100644
--- a/elevate/shellexecute.go
+++ b/elevate/shellexecute.go
@@ -45,7 +45,8 @@ func ShellExecute(program string, arguments string, directory string, show int32
}
}()
- processToken, err := windows.OpenCurrentProcessToken()
+ var processToken windows.Token
+ err = windows.OpenProcessToken(windows.GetCurrentProcess(), windows.TOKEN_QUERY|windows.TOKEN_DUPLICATE, &processToken)
if err != nil {
return
}