This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.12-42-ge35fcef
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 21 Jun 2010 15:02:08 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.12-42-ge35fcef
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via e35fcef8b739ed24e083ff8a3078ac14e101cf67 (commit)
from ac2b484c02b01307ab6bbe5d45ddbf16d64edf8c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e35fcef8b739ed24e083ff8a3078ac14e101cf67
commit e35fcef8b739ed24e083ff8a3078ac14e101cf67
Author: Andreas Schwab <schwab@redhat.com>
Date: Mon Jun 21 07:57:12 2010 -0700
More fixes to error handling in getlogin_r.
diff --git a/ChangeLog b/ChangeLog
index 0741fc1..85b6e69 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-21 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+ Restore proper fallback handling.
+
2010-06-19 Ulrich Drepper <drepper@redhat.com>
[BZ #11701]
diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c
index 5c3de69..7d4d6c0 100644
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
@@ -27,6 +27,10 @@ static int getlogin_r_fd0 (char *name, size_t namesize);
#undef getlogin_r
+/* Try to determine login name from /proc/self/loginuid and return 0
+ if successful. If /proc/self/loginuid cannot be read return -1.
+ Otherwise return the error number. */
+
int
attribute_hidden
__getlogin_r_loginuid (name, namesize)
@@ -35,7 +39,7 @@ __getlogin_r_loginuid (name, namesize)
{
int fd = open_not_cancel_2 ("/proc/self/loginuid", O_RDONLY);
if (fd == -1)
- return 1;
+ return -1;
/* We are reading a 32-bit number. 12 bytes are enough for the text
representation. If not, something is wrong. */
@@ -51,7 +55,7 @@ __getlogin_r_loginuid (name, namesize)
|| (uidbuf[n] = '\0',
uid = strtoul (uidbuf, &endp, 10),
endp == uidbuf || *endp != '\0'))
- return 1;
+ return -1;
size_t buflen = 1024;
char *buf = alloca (buflen);
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/unix/sysv/linux/getlogin_r.c | 8 ++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
hooks/post-receive
--
GNU C Library master sources