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.
This commit is contained in:
Fred Drake 2000-12-06 21:24:28 +00:00
parent 49312a52ec
commit a30680b240

View file

@ -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;
}