Project

General

Profile

Actions

Bug #19244

open

Windows: USERPROFILE should be preferred over HOMEPATH

Added by larskanis (Lars Kanis) 6 months ago. Updated 5 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x64-mingw-ucrt]
[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) 5 months 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

Also available in: Atom PDF

Like0
Like0Like0