diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 4ca22d84b..3374f58d2 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2009-05-06 Corinna Vinschen + + * cygheap.cc (cygheap_init): Set umask to a sane default. + * uinfo.cc (cygheap_user::ontherange): Don't use HOMEDRIVE/HOMEPATH + to set HOME. Default to /home/USERNAME. + 2009-05-03 Corinna Vinschen * security.cc (set_file_sd): Drop using FILE_OPEN_FOR_RECOVERY flag in diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc index bddc6ce66..1e579f341 100644 --- a/winsup/cygwin/cygheap.cc +++ b/winsup/cygwin/cygheap.cc @@ -156,6 +156,8 @@ cygheap_init () _cygheap_mid - _cygheap_start); cygheap_max = cygheap; _csbrk (sizeof (*cygheap)); + /* Set umask to a sane default. */ + cygheap->umask = 022; } if (!cygheap->fdtab) cygheap->fdtab.init (); diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index 8ca382bfe..8adfd37b8 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -248,15 +248,6 @@ cygheap_user::ontherange (homebodies what, struct passwd *pw) if (what == CH_HOME) { char *p; - if (homedrive) - newhomedrive = homedrive; - else if ((p = getenv ("HOMEDRIVE"))) - newhomedrive = p; - - if (homepath) - newhomepath = homepath; - else if ((p = getenv ("HOMEPATH"))) - newhomepath = p; if ((p = getenv ("HOME"))) debug_printf ("HOME is already in the environment %s", p); @@ -267,17 +258,12 @@ cygheap_user::ontherange (homebodies what, struct passwd *pw) debug_printf ("Set HOME (from /etc/passwd) to %s", pw->pw_dir); setenv ("HOME", pw->pw_dir, 1); } - else if (!newhomedrive || !newhomepath) - setenv ("HOME", "/", 1); else { - char *home = tp.c_get (); - char *buf = tp.c_get (); - strcpy (buf, newhomedrive); - strcat (buf, newhomepath); - cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, buf, home, - NT_MAX_PATH); - debug_printf ("Set HOME (from HOMEDRIVE/HOMEPATH) to %s", home); + char home[strlen (name ()) + 8]; + + debug_printf ("Set HOME to default /home/USER"); + __small_sprintf (home, "/home/%s", name ()); setenv ("HOME", home, 1); } }