From 3069066647b38f3e9c0678d6eb11a66c193d3a42 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 23 Oct 2019 19:31:04 +0000 Subject: elevate: do not invoke shell execute if program is empty Signed-off-by: Jason A. Donenfeld --- elevate/shellexecute.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/elevate/shellexecute.go b/elevate/shellexecute.go index 8e238f08..6290b4f8 100644 --- a/elevate/shellexecute.go +++ b/elevate/shellexecute.go @@ -42,7 +42,7 @@ func ShellExecute(program string, arguments string, directory string, show int32 } defer func() { - if err != nil { + if err != nil && program16 != nil { err = windows.ShellExecute(0, windows.StringToUTF16Ptr("runas"), program16, arguments16, directory16, show) } }() @@ -132,6 +132,10 @@ func ShellExecute(program string, arguments string, directory string, show int32 defer syscall.Syscall((*interfacePointer)[releaseOffset], 1, uintptr(unsafe.Pointer(interfacePointer)), 0, 0) + if program16 == nil { + return + } + if ret, _, _ := syscall.Syscall6((*interfacePointer)[shellExecuteOffset], 6, uintptr(unsafe.Pointer(interfacePointer)), uintptr(unsafe.Pointer(program16)), -- cgit v1.2.3-59-g8ed1b