Skip to content

Commit a2e99cd

Browse files
committed
Remove max_file_size option
It breaks dotnet, and it was not secure anyways; quotas are a better replacement.
1 parent f8d16ce commit a2e99cd

6 files changed

Lines changed: 0 additions & 61 deletions

File tree

cms/conf.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,6 @@ class FSQuotaSettings:
9898
@dataclass()
9999
class SandboxConfig:
100100
sandbox_implementation: str = "isolate"
101-
# Max size of each writable file during an evaluation step, in KiB.
102-
max_file_size: int = 1024 * 1024 # 1 GiB
103101
fs_quota: FSQuotaSettings | None = None
104102
# Max processes, CPU time (s), memory (KiB) for compilation runs.
105103
compilation_sandbox_max_processes: int = 1000

cms/grading/Sandbox.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,6 @@ def __init__(
265265
self.preserve_env = False # -e
266266
self.inherit_env: list[str] = [] # -E
267267
self.set_env: dict[str, str] = {} # -E
268-
self.fsize: int | None = None # -f
269268
self.stdin_file: str | None = None # -i
270269
self.stdout_file: str | None = None # -o
271270
self.stderr_file: str | None = None # -r
@@ -797,9 +796,6 @@ def build_box_options(self) -> list[str]:
797796
res += ["--env=%s" % var]
798797
for var, value in self.set_env.items():
799798
res += ["--env=%s=%s" % (var, value)]
800-
if self.fsize is not None:
801-
# Isolate wants file size as KiB.
802-
res += ["--fsize=%d" % (self.fsize // 1024)]
803799
if self.stdin_file is not None:
804800
res += ["--stdin=%s" % self.inner_absolute_path(self.stdin_file)]
805801
if self.stack_space is not None:

cms/grading/steps/evaluation.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,6 @@ def evaluation_step_before_run(
191191
else:
192192
sandbox.address_space = None
193193

194-
# config.sandbox.max_file_size is in KiB
195-
sandbox.fsize = config.sandbox.max_file_size * 1024
196-
197194
sandbox.stdin_file = stdin_redirect
198195
sandbox.stdout_file = stdout_redirect
199196
sandbox.stderr_file = "stderr.txt"

cmstestsuite/Tests.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -458,13 +458,6 @@
458458
languages=(LANG_C,),
459459
checks=[CheckOverallScore(0, 100)]),
460460

461-
# Write a huge file
462-
463-
Test('write-big-fileio',
464-
task=batch_fileio, filenames=['write-big-fileio.%l'],
465-
languages=(LANG_C,),
466-
checks=[CheckOverallScore(0, 100)]),
467-
468461
]
469462

470463
# TODO figure out a better way to enable/disable this.........

cmstestsuite/code/write-big-fileio.c

Lines changed: 0 additions & 39 deletions
This file was deleted.

config/cms.sample.toml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,6 @@ twophase_commit = false
7979

8080

8181
[sandbox]
82-
# Do not allow contestants' solutions to write files bigger than this
83-
# size (expressed in KB; defaults to 1 GB).
84-
# Note that this alone isn't secure; solutions can create multiple files
85-
# in the sandbox.
86-
max_file_size = 1_048_576
87-
8882
# If these are set, enforce a filesystem quota on sandboxes. Note that:
8983
# (1) The file system that stores isolate boxes (box_root in isolate's
9084
# config file) must have quota accounting enabled (for a tmpfs,

0 commit comments

Comments
 (0)