From 90dc5ae520daf59acc6ee9214c1c05b4372374ef Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Fri, 6 Mar 2020 21:42:18 +0800 Subject: manager: chdir into unelevated profile before execing Otherwise we wind up in \Windows\System32 in the import dialog's default directory. Reported-by: Kai Haberzettl Signed-off-by: Jason A. Donenfeld --- manager/service.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manager/service.go b/manager/service.go index e493e7cb..dacb7864 100644 --- a/manager/service.go +++ b/manager/service.go @@ -124,6 +124,7 @@ func (service *managerService) Execute(args []string, r <-chan svc.ChangeRequest userToken.Close() return } + userProfileDirectory, _ := userToken.GetUserProfileDirectory() var elevatedToken windows.Token if userToken.IsElevated() { elevatedToken = userToken @@ -188,6 +189,7 @@ func (service *managerService) Execute(args []string, r <-chan svc.ChangeRequest Token: syscall.Token(elevatedToken), }, Files: []*os.File{devNull, devNull, devNull}, + Dir: userProfileDirectory, } procsLock.Lock() var proc *os.Process -- cgit v1.2.3-59-g8ed1b