STINNER Victor added the comment:
It looks like open() ignores O_TMPFILE (0o20000000) on old Linux kernels. Test
on Linux 3.2:
>>> fd=os.open("/tmp", os.O_RDWR | O_TMPFILE, 0o600)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 21] Is a directory: '/tmp'
>>> fd=os.open("/tmp", os.O_RDWR | os.O_DIRECTORY, 0o600)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 21] Is a directory: '/tmp'
So we should catch OSError(21, "Is a directory: '/tmp'") and fallback to the
current implementation (random name, unlink), and remember that the kernel
version is too old.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue21515>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com