Skip to content

Commit 74f1a07

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

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 | int | None = None # -i
270269
self.stdout_file: str | int | None = None # -o
271270
self.stderr_file: str | int | None = None # -r
@@ -801,9 +800,6 @@ def build_box_options(self) -> list[str]:
801800
res += ["--env=%s" % var]
802801
for var, value in self.set_env.items():
803802
res += ["--env=%s=%s" % (var, value)]
804-
if self.fsize is not None:
805-
# Isolate wants file size as KiB.
806-
res += ["--fsize=%d" % (self.fsize // 1024)]
807803
if isinstance(self.stdin_file, str):
808804
res += ["--stdin=%s" % self.inner_absolute_path(self.stdin_file)]
809805
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
@@ -196,9 +196,6 @@ def evaluation_step_before_run(
196196
else:
197197
sandbox.address_space = None
198198

199-
# config.sandbox.max_file_size is in KiB
200-
sandbox.fsize = config.sandbox.max_file_size * 1024
201-
202199
sandbox.stdin_file = stdin_redirect
203200
sandbox.stdout_file = stdout_redirect
204201
sandbox.stderr_file = "stderr.txt"

cmstestsuite/Tests.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -520,13 +520,6 @@
520520
languages=(LANG_C,),
521521
checks=[CheckOverallScore(0, 100)]),
522522

523-
# Write a huge file
524-
525-
Test('write-big-fileio',
526-
task=batch_fileio, filenames=['write-big-fileio.%l'],
527-
languages=(LANG_C,),
528-
checks=[CheckOverallScore(0, 100)]),
529-
530523
]
531524

532525
# 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)