[Python-Dev] Re: Bug [ 959379 ] Implicit close() should check for errors

Peter Astrand astrand at lysator.liu.se
Tue Oct 26 07:53:02 CEST 2004


On Mon, 25 Oct 2004, David Bolen wrote:

> > I'd like to resolve bug 959379. Here's a naive fix. Comments?
>
> If you're going to match the normal close() processing, shouldn't that
> check the result against EOF and not just != 0?  If for example, the

Yes. Thanks. Here's the new patch. OK to commit?

diff -u -r2.192 fileobject.c
--- fileobject.c	11 Jun 2004 04:49:03 -0000	2.192
+++ fileobject.c	26 Oct 2004 05:50:12 -0000
@@ -304,7 +304,8 @@
 		PyObject_ClearWeakRefs((PyObject *) f);
 	if (f->f_fp != NULL && f->f_close != NULL) {
 		Py_BEGIN_ALLOW_THREADS
-		(*f->f_close)(f->f_fp);
+		if ((*f->f_close)(f->f_fp) == EOF)
+			perror("close failed");
 		Py_END_ALLOW_THREADS
 	}
 	PyMem_Free(f->f_setbuf);



/Peter Åstrand <astrand at lysator.liu.se>



More information about the Python-Dev mailing list