Record media async primitive and contract audit findings
This commit is contained in:
1 parent
d8621c7f27
commit
41cc04bdab
1 file changed
+13
@@ -4,6 +4,19 @@
|
||||
|
||||
## Текущие задачи
|
||||
|
||||
[ ] **media_async: файловые примитивы и точные контракты .h** — аудит 22.10.2026:
|
||||
ma_copy_file проверяет только strcmp: source и ./source обнуляют исходный файл (14→0 байт), возврат 0.
|
||||
Одинаковые строки несуществующего пути также дают 0 без проверки источника; правила перезаписи/ошибок не описаны.
|
||||
ma_uuid игнорирует отказ RAND_bytes: при внедрённой ошибке буфер остаётся прежним, вызывающий не получает ошибку.
|
||||
ma_dir_walk молча возвращает 0 для отсутствующего каталога/обычного файла; ошибки opendir/lstat/readdir не передаются.
|
||||
Windows-ветка рекурсирует по DIRECTORY без проверки REPARSE_POINT; regular-only контракт .h требует уточнения/реализации.
|
||||
ma_file_size сужает st_size до int: 3 ГиБ возвращают -1073741824. Ограничение int в .h указано,
|
||||
но вызывающие media_index/chat_msg используют результат как int64_t: расширение после вызова не восстанавливает размер.
|
||||
В .h уточнить синхронные done при отказе, -2 также для неверных аргументов/closing, отсутствие callback при done=NULL,
|
||||
лимит 16 задач до доставки done (включая завершённые workers), размеры ключа/подписи и отсутствие отката побочных эффектов work.
|
||||
Порядок join→cancel post→done при destroy сверён с uasync и doc/service_lifecycle.md; описание этого порядка соответствует коду.
|
||||
Стенд вне репозитория: /tmp/media-async-audit.c; результаты: /tmp/media-async-audit.log. Реализация не менялась.
|
||||
|
||||
[+] **test_stream_service: убрать зависимость bootstrap-проверки от гонки TCP-handshake** — исправлено 22.10.2026:
|
||||
Падение на строке 409: REINIT=0 при probes=1/subflows=1/failures=0 и доставленной первой пачке.
|
||||
Встречный TCP-линк успевает сообщить peer_reset_id до ETCP CONFIRM: начальная эпоха уже известна,
|
||||
|
||||
Reference in new issue
Block a user