aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/elevate/shellexecute.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-10-01 13:13:58 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-10-01 13:59:42 +0200
commite2adae0548c43213eae96fbf0fa90b8ad6d8d927 (patch)
treef8deaaa5431ddf6abd67255d509a67c8ddffd1e5 /elevate/shellexecute.go
parentRevert "version: use crypt32 instead of go x509 for cn extraction for file size" (diff)
downloadwireguard-windows-e2adae0548c43213eae96fbf0fa90b8ad6d8d927.tar.xz
wireguard-windows-e2adae0548c43213eae96fbf0fa90b8ad6d8d927.zip
elevate: use fallback shellexecute when not EV-signed
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r--elevate/shellexecute.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/elevate/shellexecute.go b/elevate/shellexecute.go
index acb5b2e2..8e238f08 100644
--- a/elevate/shellexecute.go
+++ b/elevate/shellexecute.go
@@ -13,6 +13,8 @@ import (
"golang.org/x/sys/windows"
"golang.org/x/sys/windows/registry"
+
+ "golang.zx2c4.com/wireguard/windows/version"
)
const (
@@ -45,6 +47,11 @@ func ShellExecute(program string, arguments string, directory string, show int32
}
}()
+ if !version.IsRunningEVSigned() {
+ err = windows.ERROR_INSUFFICIENT_LOGON_INFO
+ return
+ }
+
var processToken windows.Token
err = windows.OpenProcessToken(windows.CurrentProcess(), windows.TOKEN_QUERY|windows.TOKEN_DUPLICATE, &processToken)
if err != nil {