diff options
Diffstat (limited to 'Python/errors.c')
-rw-r--r-- | Python/errors.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Python/errors.c b/Python/errors.c index c0efbf1..423f792 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -282,15 +282,20 @@ PyErr_SetFromErrnoWithFilename(exc, filename) char *filename; { PyObject *v; + char *s; int i = errno; #ifdef EINTR if (i == EINTR && PyErr_CheckSignals()) return NULL; #endif + if (i == 0) + s = "Error"; /* Sometimes errno didn't get set */ + else + s = strerror(i); if (filename != NULL && Py_UseClassExceptionsFlag) - v = Py_BuildValue("(iss)", i, strerror(i), filename); + v = Py_BuildValue("(iss)", i, s, filename); else - v = Py_BuildValue("(is)", i, strerror(i)); + v = Py_BuildValue("(is)", i, s); if (v != NULL) { PyErr_SetObject(exc, v); Py_DECREF(v); |