From a30680b24035c972621c92394cb2b21cabbea6a5 Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Wed, 6 Dec 2000 21:24:28 +0000 Subject: [PATCH] posix_getlogin(): Handle the possibility that getlogin() can return NULL without setting errno; observed on Linux Mandrake 7.2 by an anonymous user. This closes bug #124758. --- Modules/posixmodule.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index a2251b1df8..2ddcebc855 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1904,12 +1904,21 @@ posix_getlogin(PyObject *self, PyObject *args) PyObject *result = NULL; if (PyArg_ParseTuple(args, ":getlogin")) { - char *name = getlogin(); + char *name; + int old_errno = errno; - if (name == NULL) - posix_error(); + errno = 0; + name = getlogin(); + if (name == NULL) { + if (errno) + posix_error(); + else + PyErr_SetString(PyExc_OSError, + "unexpected NULL from getlogin()"); + } else result = PyString_FromString(name); + errno = old_errno; } return result; } -- 2.50.1