fix: security hardening, battery health false-critical, Win11 startup detection#401
Conversation
| (!string.IsNullOrEmpty(pf) && fullPath.StartsWith(pf, StringComparison.OrdinalIgnoreCase)) || | ||
| (!string.IsNullOrEmpty(pfx86) && fullPath.StartsWith(pfx86, StringComparison.OrdinalIgnoreCase)) || | ||
| (!string.IsNullOrEmpty(winDir) && fullPath.StartsWith(winDir, StringComparison.OrdinalIgnoreCase)) || | ||
| fullPath.StartsWith(progData, StringComparison.OrdinalIgnoreCase) || | ||
| (!string.IsNullOrEmpty(localAppData) && fullPath.StartsWith(localAppData, StringComparison.OrdinalIgnoreCase)); |
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR consolidates multiple security and correctness hardening fixes for SysManager 0.48.23. Battery health data now uses -1 to signal unavailable capacity, with downstream health score and UI updates to reflect this. Update binaries are verified via Authenticode signatures with GUID-based script naming to prevent TOCTOU races. Uninstall executables are validated against trusted directories, XPath expressions are further sanitized, and StartupService's enabled-state detection is corrected for Windows 11 registry blobs. ChangesSecurity and Correctness Hardening
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Comment |
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
…nfigureAwait(false) (#424) ## Summary **Batch 5+6** of the QA bug fix series (combined — related changes). ### Issue #401 — Hardcoded launcher paths - Added RiotLogDirs helper that scans all fixed drives for Riot Games/League of Legends log directories - Follows the same pattern as SteamRoots and SteamShaderCacheDirs - Other launcher caches (Epic, Battle.net, GOG, EA) correctly use %LOCALAPPDATA%/%PROGRAMDATA% — no changes needed ### Issue #402 — Unbounded icon cache - Added MaxCacheSize property (default 500, configurable) to IconExtractorService - When cache exceeds the limit, half the entries are evicted ### Issue #403 — Missing ConfigureAwait(false) - PerformanceService: all async calls now use ConfigureAwait(false) - UninstallerService: RunProcessAsync call uses ConfigureAwait(false) - WingetService: all RunProcessAsync calls use ConfigureAwait(false) ### Testing - Build: 0 errors Closes #401, Closes #402, Closes #403 Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
Adds CHANGELOG entries for all 9 releases from the QA bug fix session: - **v0.28.16** — Dispose lifecycle (#395, #410) - **v0.28.17** — CTS disposal + bare catch (#396, #413) - **v0.28.18** — Input validation + null checks (#397, #398) - **v0.28.19** — JSON error handling (#400) - **v0.28.20** — Drive scanning + cache eviction + ConfigureAwait (#401, #402, #403) - **v0.28.21** — Audit logging + error messages (#405, #407) - **v0.28.22** — SHA256 verification (#408, #409) - **v0.28.23** — Service timeout + snapshot persist + traceroute DNS (#414, #415, #416) - **v0.28.24** — Accessibility (#411) 18 bugs fixed in total. Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
… detection (#401) * fix: security hardening, battery health false-critical, Win11 startup detection * test: update battery tests for -1 (unavailable) return value --------- Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
Summary
Addresses HIGH and MEDIUM findings from the comprehensive code review.
Security
Functionality
Files changed (9)
Build
0 errors, 0 new warnings.
Summary by CodeRabbit
Bug Fixes
Documentation