* 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>
+
+ * 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
bool strip_title_path;
bool allow_glob = true;
-/* Static getlogin buffer. */
-char __getlogin_username[UNLEN + 1];
-
bool NO_COPY in_forkee;
int __argc_safe;
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;
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