Skip to content

Commit 0638f69

Browse files
fix: handle long arguments in sandbox.
1 parent 9b621bc commit 0638f69

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

apps/common/utils/tool_code.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def exec_code(self, code_str, keywords, function_name=None):
8282
err = '{"code":500,"msg":str(e),"data":None}'
8383
action_function = f'({function_name !a}, locals_v.get({function_name !a}))' if function_name else 'locals_v.popitem()'
8484
python_paths = CONFIG.get_sandbox_python_package_paths().split(',')
85-
target_user = f'os.setgid({pwd.getpwnam(self.user).pw_gid});os.setuid({pwd.getpwnam(self.user).pw_uid});' if self.sandbox else ''
85+
set_run_user = f'os.setgid({pwd.getpwnam(self.user).pw_gid});os.setuid({pwd.getpwnam(self.user).pw_uid});' if self.sandbox else ''
8686
_exec_code = f"""
8787
try:
8888
import os, sys, json, base64, builtins
@@ -92,8 +92,8 @@ def exec_code(self, code_str, keywords, function_name=None):
9292
locals_v={'{}'}
9393
keywords={keywords}
9494
globals_v={'{}'}
95+
{set_run_user}
9596
os.environ.clear()
96-
{target_user}
9797
exec({dedent(code_str)!a}, globals_v, locals_v)
9898
f_name, f = {action_function}
9999
for local in locals_v:
@@ -103,8 +103,8 @@ def exec_code(self, code_str, keywords, function_name=None):
103103
except Exception as e:
104104
builtins.print("\\n{_id}:"+base64.b64encode(json.dumps({err}, default=str).encode()).decode(), flush=True)
105105
"""
106+
maxkb_logger.debug(f"Sandbox execute code: {_exec_code}")
106107
with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=True) as f:
107-
maxkb_logger.debug(f"Sandbox execute code: {_exec_code}")
108108
f.write(_exec_code)
109109
f.flush()
110110
subprocess_result = self._exec(f.name)

0 commit comments

Comments
 (0)