Nick Coghlan <ncogh...@gmail.com> added the comment:

Ah, OK - the problem is confined solely to the wrapper for the Python imp 
module function. The normal import machinery doesn't go through the wrapper and 
hence doesn't have the problem.

The PyFile_FromFile logic is a little convoluted, but Florent's patch looks 
correct. Currently, if the dircheck call in fill_file_fields fails, the 
function returns NULL, but leaves the file object populated (included its f_fp 
field). The Py_DECREF call then implicitly closes the file, resulting in a 
double close when call_find_module does the same thing manually.

One other thing that is a little dubious in this code is the lack of error 
checking on the conversion of mode to a string object in fill_file_fields. 
That's fine for file_init (where mode came from a Python string object in the 
first place), but not valid for PyFile_FromFile (where mode is passed in as a 
char * instance).

----------
assignee: ncoghlan -> flox

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue7732>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to