about summary refs log tree commit diff
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.tar.gz
glibc-63c4ed22b5048c8701d8806026c23cc95f0df756.tar.xz
glibc-63c4ed22b5048c8701d8806026c23cc95f0df756.zip
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 4d15db093d..58e37c4ab4 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 ();
 }