Record topology dump truncation defect found during audit
This commit is contained in:
1 parent
902ffa05b4
commit
8dcd2fac3b
1 file changed
+12
@@ -4,6 +4,18 @@
|
||||
|
||||
## Текущие задачи
|
||||
|
||||
[ ] **Routing: ограничить длину результата topo_node_format_all при усечении**.
|
||||
24.10.2026, аудит topo_node: при buf_size=1/2/5/12/13 функция возвращает 13, хотя записаны
|
||||
соответственно 0/1/4/11/12 байт. Причина — snprintf возвращает требуемую длину маркера,
|
||||
а код прибавляет её к pos как фактически записанную. FMT_ADD также продолжает наращивать
|
||||
pos после усечения внутри одного узла, формируя указатели за пределами заявленного буфера.
|
||||
control_server использует возвращённую длину для text[text_len] и копирования; его текущий
|
||||
буфер существенно больше 13 байт, сбой рабочего control-вызова этим опытом не установлен.
|
||||
План: поддерживать pos <= buf_size-1, завершать добавление при заполнении, ограничить маркер
|
||||
оставшимся местом и возвращать фактическую длину; проверить маленькие буферы и усечение внутри узла/пути.
|
||||
Воспроизведение: /tmp/topo-node-format-audit.c; лог: /tmp/topo-node-format-audit.log (5 неверных длин из 9 размеров).
|
||||
Дальнейший аудит остановлен по AGENTS.md; код форматирования и документы модулей не менялись.
|
||||
|
||||
[+] **Routing: согласовать обход секции подсетей в topo_node_deserialize с wire-размером**.
|
||||
24.10.2026: ручная упаковка/разбор доработаны без lib/serialize. Без TOPO_FLAG_SEND_SUBNETS
|
||||
счётчики подсетей равны 0; противоречащий заголовок отклоняется до выделения объектов.
|
||||
|
||||
Reference in new issue
Block a user