From: Paul Eggert Date: Sat, 28 May 2005 06:11:39 +0000 (+0000) Subject: (getlogin_r): Don't set errno to 0 on return. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c2b29eec6c095fdf0191419badac3b945d71b82;p=pspp (getlogin_r): Don't set errno to 0 on return. --- diff --git a/lib/getlogin_r.c b/lib/getlogin_r.c index c02db2fe65..d269b92238 100644 --- a/lib/getlogin_r.c +++ b/lib/getlogin_r.c @@ -44,8 +44,15 @@ getlogin_r (char *name, size_t size) errno = 0; n = getlogin (); + + /* A system function like getlogin_r is never supposed to set errno + to zero, so make sure errno is nonzero here. ENOENT is a + reasonable errno value if getlogin returns NULL. */ + if (!errno) + errno = ENOENT; + if (!n) - return errno ? errno : ENOENT; + return errno; nlen = strlen (n); if (size <= nlen) return ERANGE;