public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] getlogin_r: return early when linux sentinel value is set
@ 2018-03-16 16:18 Jesse Hathaway
  2018-03-19 15:03 ` Jesse Hathaway
  2018-03-20  8:00 ` Adhemerval Zanella
  0 siblings, 2 replies; 18+ messages in thread
From: Jesse Hathaway @ 2018-03-16 16:18 UTC (permalink / raw)
  To: libc-alpha

When there is no login uid Linux sets /proc/self/loginid to the sentinel
value of 4294967295. If this is set we can return early and avoid
needlessly looking up the sentinel value in any configured nss
databases.

diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c
b/sysdeps/unix/sysv/linux/getlogin_r.c
index 73ea14c8f9..43f55a2188 100644
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
@@ -55,6 +55,12 @@ __getlogin_r_loginuid (char *name, size_t namesize)
    endp == uidbuf || *endp != '\0'))
     return -1;

+  /* If there is no login uid, linux sets /proc/self/loginid to the sentinel
+     value of 4294967295, so check if the value is set and return early to
+     avoid making unneeded nss lookups. */
+  if (uid == 4294967295)
+    return ENXIO;
+
   struct passwd pwd;
   struct passwd *tpwd;
   int result = 0;

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-04-03 11:53 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-16 16:18 [PATCH] getlogin_r: return early when linux sentinel value is set Jesse Hathaway
2018-03-19 15:03 ` Jesse Hathaway
2018-03-20  8:00 ` Adhemerval Zanella
2018-03-20  9:05   ` Andreas Schwab
2018-03-20 17:52   ` Jesse Hathaway
2018-03-20 18:30     ` Andreas Schwab
2018-03-21 21:28       ` Jesse Hathaway
2018-03-22  6:14         ` Adhemerval Zanella
2018-03-22 13:49           ` Jesse Hathaway
2018-03-22 17:35         ` Andreas Schwab
2018-03-22 19:30           ` Jesse Hathaway
2018-03-26 14:22             ` Jesse Hathaway
2018-03-26 16:30               ` Adhemerval Zanella
2018-03-28  0:37                 ` Adhemerval Zanella
2018-04-03 10:46                   ` Florian Weimer
2018-04-03 11:41                     ` Adhemerval Zanella
2018-04-03 11:45                       ` Florian Weimer
2018-04-03 11:53                         ` Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).