You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3acc22f
Browse filesBrowse the repository at this point in the historyBrowse files
fix(build): Control Flow Guard and SDL checks on every library
/guard:cf only guards code compiled with it, so the NVAPI function-pointer
calls in hw/ were unchecked. A gao_hardening interface now applies
/guard:cf /sdl to core, hw and gao (clean build). Also from the review:
presets require CMake 4.2 (the VS 2026 generator), test presets fail when no
test is found, read_lines reports a read error mid-file, and the strike test
asserts the exact fail-closed value.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@
19
19
20
20
## Quick start
21
21
22
-
Requires an x64 Windows machine with Visual Studio 2026 (C++ and CMake workload) and CMake >= 3.28. From a Developer PowerShell, in the repo root:
22
+
Requires an x64 Windows machine with Visual Studio 2026 (C++ and CMake workload), whose bundled CMake (4.2 or newer) knows the VS 2026 generator. From a Developer PowerShell, in the repo root:
23
23
24
24
```powershell
25
25
cmake --workflow --preset ci # configure, build Release, run the tests
@@ -105,7 +105,7 @@ cmake --build --preset asan
105
105
ctest --preset asan # needs the MSVC bin\Hostx64\x64 folder on PATH
106
106
```
107
107
108
-
Our code builds at `/W4 /permissive-` with warnings as errors; `third_party/` is a system include. `gao.exe`is linked with Control Flow Guard and CET compatibility and carries an application manifest.
108
+
Our code builds at `/W4 /permissive-` with warnings as errors; `third_party/` is a system include. All of it is compiled with Control Flow Guard and SDL checks; `gao.exe` is linked CET-compatible and carries an application manifest.
109
109
110
110
`core_tests` is the only test binary. It covers `src/core/` -- presets, config round-trip, and the `GpuControl` seam that lets tests drive fake hardware through lambdas -- and needs no GPU, which is why CI runs it on a GitHub-hosted `windows-2025` runner, once normally and once under AddressSanitizer. `src/hw/` (NVML, NVAPI) is verified manually on real hardware instead, through [`docs/hardware-checks.md`](docs/hardware-checks.md); CI still builds the full `gao.exe` so a link error in the hardware layer is caught there rather than on a developer's machine.
0 commit comments