The following script:
import os
import resource
import random
print("1")
for fd in range(resource.getrlimit(resource.RLIMIT_NOFILE)[0]):
try:
if fd not in range(0, 3):
os.close(fd)
except os.error:
pass
print("2")
print(os.urandom(32))
print("3")
Crashes with the following output:
1
2
Traceback (most recent call last):
File "test.py", line 17, in <module>
print(os.urandom(32))
OSError: [Errno 9] Bad file descriptor
On an Ubuntu 14.04 install (in VirtualBox). It seems to run correctly on Mac OS X. The script runs fine if I don't import random at the top. |