Use quotes around default GVFS.Hooks.exe configuration by tyrielv · Pull Request #1838 · microsoft/VFSForGit (original) (raw)

The default install location on Windows is in C:\Program Files\VFS for Git. When configuring the hook for GVFS.Hooks.exe the absolute path is recorded in pre-command.hooks and post-command.hooks.

GitHooksLoader.exe will read that line verbatim and try to execute it using CreateProcess. This typically works, but it checks for executable files at "C:\Program", "C:\Program.exe", "C:\Program Files\VFS", "C:\Program Files\VFS.exe" etc before resolving to the correct executable.

If a user has a file at C:\Program, then the pre-command hook will try to run it instead, typically failing and blocking all git/gvfs operations.

This pull request puts quotes around the absolute path of GVFS.Hooks.exe when configuring the pre/post command hooks, so that CreateProcess will resolve immediately to the correct executable instead of checking partial paths.