From 29206bc8a3641b6d15cd5c30a3a74658d582362a Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 9 Aug 2001 18:14:59 +0000 Subject: [PATCH] Apply anonymous SF patch #441229. Previously, f.read() and f.readlines() checked for errors on their file object and possibly raised an IOError, but f.readline() didn't. This patch makes f.readline() behave like the others. Note that I've added a call to clearerr() since the other calls to ferror() include that too. I have no way to test this code. :-) --- Objects/fileobject.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Objects/fileobject.c b/Objects/fileobject.c index e01c4398d6d..946d41c22a5 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -847,6 +847,12 @@ get_line(PyFileObject *f, int n) if (c == '\n') break; if (c == EOF) { + if (ferror(fp)) { + PyErr_SetFromErrno(PyExc_IOError); + clearerr(fp); + Py_DECREF(v); + return NULL; + } clearerr(fp); if (PyErr_CheckSignals()) { Py_DECREF(v);