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
Comprehensive fix for ~25 bugs found in full code audit.
BSDIFF/Differential:
- Fix WriteInt64 long.MinValue overflow (BsdiffDiffer, StreamingHdiffDiffer)
- Guard (int)control[0] truncation in Dirty method (BsdiffDiffer)
- ReadFileWithBudget throws instead of silently truncating (StreamingHdiffDiffer)
Zip security:
- Add path-traversal guard in Decompress (ZipCompressionStrategy)
- Fix StartsWith ambiguity — exact match instead of substring match
Process lifecycle:
- Fix ProcessExit deadlock (Task.Run wrapper in ClientStrategy.LaunchUpgradeProcessSync)
- Move suicide from finally to success-only path (Windows/Linux/MacStrategy)
- Track appLaunched flag so Bowl failure still triggers updater exit
- GeneralTracer.Dispose removes only own listeners, not global Trace.Listeners
Configuration & lifecycle:
- Fix ProcessContract null-check ordering
- Add disposed guard + null set to UpgradeHubService (HubConnection lifecycle)
- ConfigurationMapper throws on null source instead of silent empty config
- EventManager.Reset() for re-creatable singleton
Network:
- DefaultRetryPolicy uses HttpRequestException.StatusCode (.NET 5+) or regex for status matching
- netstandard2.0 fallback uses \b(500|502|503|504)\b regex
Co-Authored-By: Claude <noreply@anthropic.com>
0 commit comments