From: Fred Drake Date: Wed, 6 Dec 2000 21:24:28 +0000 (+0000) Subject: posix_getlogin(): Handle the possibility that getlogin() can return X-Git-Tag: v2.1a1~660 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a30680b24035c972621c92394cb2b21cabbea6a5;p=python 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. --- 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; }