| Предыдущий | Следующий |
| STATUS_PROPSET_NOT_FOUND | STATUS_INVALID_VARIANT |
STATUS_MARSHALL_OVERFLOW
Что означает STATUS_MARSHALL_OVERFLOW
STATUS_MARSHALL_OVERFLOW означает, что данные для маршалинга между компонентами или режимами не помещаются в доступный буфер либо вычисленный размер закодированного представления выходит за поддерживаемые границы.
Что проверить
- Код операции, число элементов, размеры полей переменной длины и фактическую ёмкость буфера.
- Проверяемые умножение, сложение и выравнивание при расчёте итогового размера.
- Совпадает ли поэлементный учёт байтов в расчёте размера и в реальном кодировщике.
Как исправлять
Найдите первое поле, после которого фактическая запись расходится с рассчитанной длиной. Если протокол допускает двухэтапный запрос размера, выделите новый буфер по возвращённому значению; если предел фиксирован — валидируйте вход или разбивайте сообщение согласно контракту. Не увеличивайте буфер без исправления арифметики, вызывающей переполнение.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.