2004-11-20 Pierre Humblet <pierre.humblet@ieee.org>

* cygheap.h (cygheap_user::get_windows_id): New method.
	* registry.h (get_registry_hive_path): Change argument type.
	(load_registry_hive): Ditto.
	* registry.cc (get_registry_hive_path): Change argument type and take
	Win9x keys into account.
	(load_registry_hive): Ditto.
	* uinfo.cc (cygheap_user::env_userprofile): Use get_windows_id, even
	for SYSTEM.
	* shared.cc (user_shared_initialize): Use get_windows_id.
	* syscalls.cc (seteuid32): Load the registry hive and reload the user
	shared also on Win9x.
This commit is contained in:
Pierre Humblet
2004-11-20 19:09:19 +00:00
parent 0f0fcb042a
commit e70bea195b
7 changed files with 55 additions and 39 deletions

View File

@@ -419,11 +419,10 @@ cygheap_user::env_userprofile (const char *name, size_t namelen)
return puserprof;
char userprofile_env_buf[CYG_MAX_PATH + 1];
char win_id[UNLEN + 1]; /* Large enough for SID */
cfree_and_set (puserprof, almost_null);
/* FIXME: Should this just be setting a puserprofile like everything else? */
const char *myname = winname ();
if (myname && strcasematch (myname, "SYSTEM")
&& get_registry_hive_path (sid (), userprofile_env_buf))
if (get_registry_hive_path (get_windows_id (win_id), userprofile_env_buf))
puserprof = cstrdup (userprofile_env_buf);
return puserprof;