guydav commited on
Commit
38321a7
·
1 Parent(s): 8e4d84d

One more attempt at nerfing sys

Browse files
Files changed (1) hide show
  1. restrictedpython_code_eval.py +5 -1
restrictedpython_code_eval.py CHANGED
@@ -21,6 +21,7 @@ import copy
21
  import faulthandler
22
  import itertools
23
  import importlib
 
24
  import io
25
  import multiprocessing
26
  import os
@@ -407,7 +408,10 @@ ALLOWED_SYS_NAMES = ['maxsize']
407
  class AllowListImporter:
408
  def __init__(self, allowed_imports: List[str]):
409
  self.allowed_imports = allowed_imports
410
- inner_sys = copy.deepcopy(importlib.__import__('sys'))
 
 
 
411
  for key in list(dir(inner_sys)):
412
  if key not in ALLOWED_SYS_NAMES:
413
  delattr(inner_sys, key)
 
21
  import faulthandler
22
  import itertools
23
  import importlib
24
+ import importlib.util
25
  import io
26
  import multiprocessing
27
  import os
 
408
  class AllowListImporter:
409
  def __init__(self, allowed_imports: List[str]):
410
  self.allowed_imports = allowed_imports
411
+ sys_spec = importlib.util.find_spec('sys')
412
+ inner_sys = importlib.util.module_from_spec(sys_spec) # type: ignore
413
+ sys_spec.loader.exec_module(inner_sys) # type: ignore
414
+
415
  for key in list(dir(inner_sys)):
416
  if key not in ALLOWED_SYS_NAMES:
417
  delattr(inner_sys, key)