Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: do not dup invalid file descriptor in compile method
When providing a file to the compile function, the PyObject_AsFileDescriptor function is used, which is safe to use on any object type: if the object is not a file, -1 is returned. However, this value was passed straight to a call to dup() without checking for its validity. This isn't much of an issue on unix where the dup call will simply fail as well and return -1, but it is very much an issue on windows where passing an invalid fd to dup will invoke the invalid parameter handler, which isn't set, so it will simply terminate the program. In other words, passing anything but a file to the file parameter of the compile function will make the program crash on Windows.
- Loading branch information