* autoload.cc (CreateProfile): Import.

(LoadUserProfileW): Import.
	* registry.cc (get_registry_hive_path): Move to sec_auth.cc.
	(load_registry_hive): Remove.
	* registry.h (get_registry_hive_path): Drop declaration.
	(load_registry_hive): Ditto.
	* sec_auth.cc (get_user_profile_directory): Moved from registry.cc and
	renamed.  Take third parameter with buffer length.
	(load_user_profile): New function taking over for load_registry_hive.
	Use official functions to load profile.  If profile is missing, create
	it on Vista and later.
	* security.h (get_user_profile_directory): Declare.
	(load_user_profile): Declare.
	* syscalls.cc (seteuid32): Replace call to load_registry_hive with call
	to load_user_profile.
	* uinfo.cc (cygheap_user::env_userprofile): Replace call to
	get_registry_hive_path with call to get_user_profile_directory.
This commit is contained in:
Corinna Vinschen
2014-12-02 10:49:47 +00:00
parent 195a9205e5
commit 41f77e25f1
8 changed files with 145 additions and 109 deletions

View File

@ -3387,11 +3387,7 @@ seteuid32 (uid_t uid)
NTSTATUS status;
if (!request_restricted_uid_switch)
{
/* Avoid having HKCU use default user */
WCHAR name[128];
load_registry_hive (usersid.string (name));
}
load_user_profile (new_token, pw_new, usersid);
/* Try setting owner to same value as user. */
status = NtSetInformationToken (new_token, TokenOwner,