From 75cba6ebf690e71d74fe5382fa05c557e034d3e7 Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 17 Nov 2022 19:11:39 +0800 Subject: [PATCH] judge: trim environment variables --- packages/hydrojudge/setting.yaml | 2 ++ packages/hydrojudge/src/sandbox.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/hydrojudge/setting.yaml b/packages/hydrojudge/setting.yaml index 3ec0b3f32..1ed0fbe98 100644 --- a/packages/hydrojudge/setting.yaml +++ b/packages/hydrojudge/setting.yaml @@ -78,6 +78,8 @@ env: default: | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/w + # modify to your python version installed + PYTHONPATH=/lib/python3.10/site-packages secret: type: text name: secret diff --git a/packages/hydrojudge/src/sandbox.ts b/packages/hydrojudge/src/sandbox.ts index fd655bf61..216e24a5c 100644 --- a/packages/hydrojudge/src/sandbox.ts +++ b/packages/hydrojudge/src/sandbox.ts @@ -83,7 +83,10 @@ function proc(params: Parameter): Cmd { const memory = params.memory || parseMemoryMB(getConfig('memoryMax')); return { args: parseArgs(params.execute || ''), - env: [...getConfig('env').split('\n'), ...Object.entries(params.env || {}).map(([k, v]) => `${k}=${v.replace(/=/g, '\\=')}`)], + env: [ + ...getConfig('env').split('\n').map((i) => i.trim()).filter((i) => i.startsWith('#')), + ...Object.entries(params.env || {}).map(([k, v]) => `${k}=${v.replace(/=/g, '\\=')}`), + ], files: [ params.filename ? { content: '' } : stdin, { name: 'stdout', max: Math.floor(1024 * 1024 * size) },