* globals.cc (__getlogin_username): Remove.

* uinfo.cc (getlogin_r): Fetch username from cygheap.
	(getlogin): Add static buffer username and fetch username from
	getlogin_r.
This commit is contained in:
Corinna Vinschen 2011-05-16 17:58:21 +00:00
parent bdc00a0d85
commit 553f08059b
3 changed files with 16 additions and 5 deletions

View file

@ -1,3 +1,10 @@
2011-05-16 Corinna Vinschen <corinna@vinschen.de>
* globals.cc (__getlogin_username): Remove.
* uinfo.cc (getlogin_r): Fetch username from cygheap.
(getlogin): Add static buffer username and fetch username from
getlogin_r.
2011-05-16 Corinna Vinschen <corinna@vinschen.de>
* cygtls.h (struct _local_storage): Remove unused members rarg and

View file

@ -56,9 +56,6 @@ bool display_title;
bool strip_title_path;
bool allow_glob = true;
/* Static getlogin buffer. */
char __getlogin_username[UNLEN + 1];
bool NO_COPY in_forkee;
int __argc_safe;

View file

@ -187,7 +187,7 @@ uinfo_init ()
extern "C" int
getlogin_r (char *name, size_t namesize)
{
char *login = getlogin ();
const char *login = cygheap->user.name ();
size_t len = strlen (login) + 1;
if (len > namesize)
return ERANGE;
@ -201,7 +201,14 @@ getlogin_r (char *name, size_t namesize)
extern "C" char *
getlogin (void)
{
return strcpy (__getlogin_username, cygheap->user.name ());
static char username[UNLEN];
int ret = getlogin_r (username, UNLEN);
if (ret)
{
set_errno (ret);
return NULL;
}
return username;
}
extern "C" __uid32_t