aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/getlogin.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-06-19 09:54:28 -0700
committerUlrich Drepper <drepper@redhat.com>2010-06-19 09:54:28 -0700
commit63c4ed22b5048c8701d8806026c23cc95f0df756 (patch)
tree65f3c6559d0329a649d4c2474e3216d4bb89d22d /sysdeps/unix/sysv/linux/getlogin.c
parent765ade4b29d9fcc4b236b4f3ae5bfd1174978442 (diff)
downloadglibc-63c4ed22b5048c8701d8806026c23cc95f0df756.zip
glibc-63c4ed22b5048c8701d8806026c23cc95f0df756.tar.gz
glibc-63c4ed22b5048c8701d8806026c23cc95f0df756.tar.bz2
Fix error handling in Linux getlogin*.
Diffstat (limited to 'sysdeps/unix/sysv/linux/getlogin.c')
-rw-r--r--sysdeps/unix/sysv/linux/getlogin.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/getlogin.c b/sysdeps/unix/sysv/linux/getlogin.c
index 4d15db0..58e37c4 100644
--- a/sysdeps/unix/sysv/linux/getlogin.c
+++ b/sysdeps/unix/sysv/linux/getlogin.c
@@ -32,8 +32,9 @@
char *
getlogin (void)
{
- if (__getlogin_r_loginuid (name, sizeof (name)) == 0)
- return name;
+ int res = __getlogin_r_loginuid (name, sizeof (name));
+ if (res >= 0)
+ return res == 0 ? name : NULL;
return getlogin_fd0 ();
}