8000 fix: do not truncate system PATH in win installer by deansheather · Pull Request #5243 · coder/coder · GitHub
[go: up one dir, main page]

Skip to content

fix: do not truncate system PATH in win installer #5243

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 1, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
fix: do not truncate system PATH in win installer
The path.nsh script in the NSIS installer provided methods for adding
paths to the PATH and removing them. It would do this by reading the
current PATH value from the registry, adding the new value (if it
doesn't exist) and then writing it to the registry.

Unfortunately, it would read from the user's PATH and write the updated
result to the system PATH, which would remove important PATH entries
like the following in the process:

- C:\Windows\System32
- C:\Windows
- C:\Windows\System32\wbem
- C:\Windows\System32\WindowsPowerShell\v1.0
- C:\Windows\System32\OpenSSH
- C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR
- C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common

and would copy all user environment variables in their place. The
variables listed above were the ones missing from my machine when I
compared with a friend's machine.

Recommended course of action for affected users:
1. Add the paths listed above to your system PATH if they aren't there
   already and exist on your system.
2. Remove any paths that are in your user's PATH from your system PATH.

The existing installers for the last couple of versions of Coder have
been yanked from GitHub releases and this message will be included in
the release notes for the next patch.

Thanks to @cmor for finding and reporting this bug in #5240.
  • Loading branch information
deansheather committed Dec 1, 2022
commit a4d0085f8d257891739fc0a6904abe745b8fd405
11 changes: 4 additions & 7 deletions scripts/win-installer/path.nsh
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,11 @@

!include "WinMessages.nsh"

; Registry Entry for environment (NT4,2000,XP)
; All users:
; Registry Entry for system environment (NT4,2000,XP)
!define Environ 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
; Current user only:
;!define Environ 'HKCU "Environment"'


; AddToPath - Appends dir to PATH
; AddToPath - Appends dir to system PATH
; (does not work on Win9x/ME)
;
; Usage:
Expand All @@ -45,7 +42,7 @@ Function AddToPath
; Native calls are used here to check actual length of PATH

; $4 = RegOpenKey(HKEY_CURRENT_USER, "Environment", &$3)
System::Call "advapi32::RegOpenKey(i 0x80000001, t'Environment', *i.r3) i.r4"
System::Call "advapi32::RegOpenKey(i 0x80000002, t'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', *i.r3) i.r4"
IntCmp $4 0 0 done done
; $4 = RegQueryValueEx($3, "PATH", (DWORD*)0, (DWORD*)0, &$1, ($2=NSIS_MAX_STRLEN, &$2))
; RegCloseKey($3)
Expand Down Expand Up @@ -110,7 +107,7 @@ done:
FunctionEnd


; RemoveFromPath - Removes dir from PATH
; RemoveFromPath - Removes dir from system PATH
;
; Usage:
; Push "dir"
Expand Down
0