From 8d2a70ad76dd791a1f26c4c98f2e2073c9694f3f Mon Sep 17 00:00:00 2001 From: Paulo Borges Date: Wed, 17 Jun 2026 16:05:22 +0000 Subject: [PATCH] Add checkbox and new field 'untrusted' in fuzzer --- src/appengine/handlers/fuzzers.py | 12 ++++ .../components/fuzzers-page/edit-form.html | 10 ++- .../_internal/datastore/data_types.py | 3 + .../tests/appengine/handlers/fuzzers_test.py | 66 +++++++++++++++++++ .../tests/core/datastore/data_types_test.py | 1 + 5 files changed, 90 insertions(+), 2 deletions(-) diff --git a/src/appengine/handlers/fuzzers.py b/src/appengine/handlers/fuzzers.py index e1f5e1e1466..af09eec9649 100644 --- a/src/appengine/handlers/fuzzers.py +++ b/src/appengine/handlers/fuzzers.py @@ -174,6 +174,7 @@ def apply_fuzzer_changes(self, fuzzer, upload_info): timeout = self._get_integer_value('timeout') max_testcases = self._get_integer_value('max_testcases') external_contribution = request.get('external_contribution', False) + untrusted = request.get('untrusted', False) differential = request.get('differential', False) environment_string = request.get('additional_environment_string') data_bundle_name = request.get('data_bundle_name') @@ -193,6 +194,7 @@ def apply_fuzzer_changes(self, fuzzer, upload_info): fuzzer.sample_testcase = None fuzzer.console_output = None fuzzer.external_contribution = bool(external_contribution) + fuzzer.untrusted = bool(untrusted) fuzzer.differential = bool(differential) fuzzer.additional_environment_string = environment_string fuzzer.timestamp = datetime.datetime.now(tz=datetime.timezone.utc).replace( @@ -208,6 +210,16 @@ def apply_fuzzer_changes(self, fuzzer, upload_info): if launcher_script: fuzzer.launcher_script = launcher_script + if fuzzer.untrusted: + for job_name in jobs: + job = data_types.Job.query(data_types.Job.name == job_name).get() + if not job: + raise helpers.EarlyExitError(f'Job {job_name} not found.', 400) + if job.platform.lower() != 'linux': + raise helpers.EarlyExitError( + f'Untrusted fuzzers can only be run on Linux jobs. ' + f'Job "{job_name}" has platform "{job.platform}".', 400) + fuzzer.put() fuzzer_selection.update_mappings_for_fuzzer(fuzzer) diff --git a/src/appengine/private/components/fuzzers-page/edit-form.html b/src/appengine/private/components/fuzzers-page/edit-form.html index fb1e41886e8..e1aa340fa49 100644 --- a/src/appengine/private/components/fuzzers-page/edit-form.html +++ b/src/appengine/private/components/fuzzers-page/edit-form.html @@ -220,11 +220,16 @@
External contribution +
+
+ Untrusted +
- + -->