Repository navigation
Reject hidden disabled IL2CPP safety checks - #1022
Eli Pinkerton (wallstop) merged 2 commits into
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d4e7a66. Configure here.
Verbatim value labels could hide a false argument in reverse order. Aliases ending in Attribute were missed when C# resolved their shortened name. Recognize verbatim argument labels and both attribute alias spellings. Four label controls and two shortened-alias controls fail before the fix. All 17 new spelling controls and the full 230-case safety suite pass. C# 9 compilation with warnings as errors confirms both reported forms are valid using the local attribute stub. Pass both changed-file preflights, full spelling, the real source/SARIF gate, and pre-push safety. Address Cursor review threads in PR #1022. No runtime or shipped compiler DLL changes.
Verbatim value labels could hide a false argument in reverse order. Aliases ending in Attribute were missed when C# resolved their shortened name. Recognize verbatim argument labels and both attribute alias spellings. Four label controls and two shortened-alias controls fail before the fix. All 17 new spelling controls and the full 230-case safety suite pass. C# 9 compilation with warnings as errors confirms both reported forms are valid using the local attribute stub. Pass both changed-file preflights, full spelling, the real source/SARIF gate, and pre-push safety. Address Cursor review threads in PR #1022. No runtime or shipped compiler DLL changes.
57d7128 to
3675f6d
Compare
|
DISCLOSURE: LLM-GENERATED TEXT The original head Per the user's session closeout instruction, this PR is now above #1020 in GitHub's native stack #1021. Its two commits were rebased without patch changes to |
|
DISCLOSURE: LLM-GENERATED TEXT The first stacked-head Unity attempt was cancelled before any Windows job started. Check annotations state: With that older run terminal, I requested a retry of the failed/cancelled jobs in current-head run |
The source gate accepted constant-false expressions containing true. Attribute aliases with numeric options were not inspected. A false value named NullChecks could also be read as an option. Identify the value argument by position or name for Il2CppSetOption calls. Require the exact literal true when a value is supplied. Follow attribute imports and require both literal-false and negated-true controls in each scan. Pass all 213 safety controls without excluded cases. The first four expression controls, twelve alias controls, and six option-name value controls fail before their fixes. C# 9 compilation with warnings as errors confirms five attribute-shaped examples are valid and return false; the probe uses a local attribute stub, not Unity metadata. Restoring the old substring matcher in memory fails the strengthened scan control. The real scan covers 64 stackalloc sites with no findings and emits SARIF. Pass both changed-file preflights, full spelling, documentation links, Markdown, strict MkDocs and pre-push safety. No runtime source, shipped compiler DLL, or package API changes. Refs #637.
Verbatim value labels could hide a false argument in reverse order. Aliases ending in Attribute were missed when C# resolved their shortened name. Recognize verbatim argument labels and both attribute alias spellings. Four label controls and two shortened-alias controls fail before the fix. All 17 new spelling controls and the full 230-case safety suite pass. C# 9 compilation with warnings as errors confirms both reported forms are valid using the local attribute stub. Pass both changed-file preflights, full spelling, the real source/SARIF gate, and pre-push safety. Address Cursor review threads in PR #1022. No runtime or shipped compiler DLL changes.
3675f6d to
27743ee
Compare
|
DISCLOSURE: LLM-GENERATED TEXT #1020 now includes the narrow denied-access recovery fix The previous stacked-head run |
|
DISCLOSURE: LLM-GENERATED TEXT The remaining first-attempt jobs were cancelled by Stuck Job Watchdog run On unchanged head |
|
DISCLOSURE: LLM-GENERATED TEXT The watchdog race follow-up is #1023. It preserves the cancellation and licensed-cleanup evidence and requires protection for progressed Unity runs; implementation is deferred per the session wrap-up instruction. |
|
DISCLOSURE: LLM-GENERATED TEXT The replacement single-threaded and package-export jobs pass with confirmed healthy cleanup. Unity 6000.5 failed on the same pre-existing allocator-warning guard defect tracked in #393, now in The final Unity 2022 job is running. After the containing workflow becomes terminal, I will retry only the failed normal 6000.5 job on unchanged head |
|
DISCLOSURE: LLM-GENERATED TEXT Unity 2022 passed and confirmed healthy cleanup. Its UNKNOWN discovery report is preserved in #343. The workflow is now terminal with five successful Windows jobs and only the documented Unity 6000.5 allocator-warning failure. All acquired jobs have confirmed healthy cleanup, including the earlier watchdog-cancelled export. After verifying the workflow was completed and head remained |
|
DISCLOSURE: LLM-GENERATED TEXT Merged through GitHub native stack #1021 as The final 6000.5 retry's fresh artifact |

DISCLOSURE: LLM-GENERATED TEXT
Why: Disabled IL2CPP checks could pass the source safety gate.
What:
truewhen an IL2CPP option supplies a value.Refs #637
Note
Medium Risk
Changes CI safety-gate logic for IL2CPP options; mis-tuning could false-positive legitimate code or miss evasions, but scope is lint-only with expanded tests.
Overview
Tightens
lint:unsafe-codeso disabled IL2CPP runtime checks cannot slip past with disguised “enabled” values.Il2CppSetOptionhandling now treats a value as safe only when it is omitted or the exact literaltrue(not!true,true != true,default(bool), or aconstnamed like an option orTrue). The linter followsusingaliases (including shortenedAttributenames and@value/@optionlabels) when locating attribute sites, and flags numeric or unknown options paired with non-literal disabling expressions.Gate honesty: each repository scan must hit two positive controls—a literal
falseand an expression disable (!true)—before a clean result is trusted. Contributing docs describe the stricter rule; contract tests cover the new red/green spellings.Reviewed by Cursor Bugbot for commit 27743ee. Bugbot is set up for automated code reviews on this repo. Configure here.