0.167.33
Fixed
- Жёсткий байтовый лимит скачивания апдейта (A-020 — P2).
copyWithProgressвinternal/updater/downloader.goкопировал тело ответа без ограничения размера: сверкаwritten != art.Sizeвыполнялась только ПОСЛЕ полной записи на диск — при компрометации CDN (подписанный SHA256 не сойдётся, но только в самом конце) можно было заставить клиента скачать и записать избыточный объём. Теперь в цикле копирования стоит hard cap: как толькоwritten > total— немедленная ошибкаdownload size overflowи разрыв потока (лимит не применяется приtotal <= 0). Прогресс-коллбэки не затронуты. Попутно устранён пре-существующий data race вTestDownloadAndVerify_RetriesOnNetworkError(счётчикattemptsинкрементировался в HTTP-handler-горутине без синхронизации — переведён наatomic.Int32;t.Fatalиз handler-горутины заменён наt.Error). Тесты: тело ровно заявленного размера — без ошибки, все байты и progress-callback’и на месте; тело больше заявленного — ошибка overflow с ранним прерыванием (written не дорастает до полного размера payload);total=0— лимит не применяется.