Project

General

Profile

Actions

Feature #19244

closed

Windows: USERPROFILE should be preferred over HOMEPATH

Added by larskanis (Lars Kanis) about 1 year ago. Updated 5 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:111334]

Description

Create a new local user on Windows called "testuser".
Then switch to the new user per runas:

C:\> runas /user:testuser cmd

Then in the new window:

C:\>ruby -e "p Dir.home"
"C:/WINDOWS/system32"

C:\>echo %HOMEDRIVE%
C:

C:\>echo %HOMEPATH%
\WINDOWS\system32

C:\>echo %USERPROFILE%
C:\Users\testuser

Dir.home should return the home directory of the user.
Instead it returns C:/WINDOWS/system32.

HOMEPATH is set to "\WINDOWS\system32" when running per "runas" session.
This directory is not writable by ordinary users, leading to errors with many ruby tools.
Also config files in the home directory are not recognized.

All versions of ruby until current master branch are affected.

Updated by larskanis (Lars Kanis) about 1 year ago

The above patch was incomplete, so that the order of the environment variables was changed in Dir.home, but not the order in the startup phase, which sets the HOME environment variable. This is fixed in https://github.com/ruby/ruby/pull/7033 .

In https://github.com/ruby/ruby/pull/7034 this kind of duplicated code is removed, so that only one code path is defining the order of evaluation.

Actions #3

Updated by nobu (Nobuyoshi Nakada) 5 months ago

  • Tracker changed from Bug to Feature
  • ruby -v deleted (ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x64-mingw-ucrt])
  • Backport deleted (2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN)
Actions #4

Updated by larskanis (Lars Kanis) 5 months ago

  • Status changed from Open to Closed

Applied in changeset git|9a618b95cdee82b64257a248c31d49ae9f066fea.


[Feature #19244] Windows: Prefer USERPROFILE over HOMEPATH on startup as well

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0