Now that file objects are subclassable, you can get at the file constructor

just by doing type(f) where f is any file object.  This left a hole in
restricted execution mode that rexec.py can't plug by itself (although it
can plug part of it; the rest is plugged in fileobject.c now).
This commit is contained in:
Tim Peters 2001-09-13 21:01:29 +00:00
parent 561f899d19
commit 8fa45677c1
3 changed files with 52 additions and 2 deletions

View file

@ -132,7 +132,7 @@ class RExec(ihooks._Verbose):
ok_sys_names = ('ps1', 'ps2', 'copyright', 'version',
'platform', 'exit', 'maxint')
nok_builtin_names = ('open', 'reload', '__import__')
nok_builtin_names = ('open', 'file', 'reload', '__import__')
def __init__(self, hooks = None, verbose = 0):
ihooks._Verbose.__init__(self, verbose)
@ -186,7 +186,7 @@ class RExec(ihooks._Verbose):
m = self.copy_except(__builtin__, self.nok_builtin_names)
m.__import__ = self.r_import
m.reload = self.r_reload
m.open = self.r_open
m.open = m.file = self.r_open
def make_main(self):
m = self.add_module('__main__')