Site icon EfmSoft

Что означает код ошибки Windows 546 (ERROR_PORT_MESSAGE_TOO_LONG)?

 
Предыдущий Следующий
ERROR_INVALID_PORT_ATTRIBUTES ERROR_INVALID_QUOTA_LOWER

ERROR_PORT_MESSAGE_TOO_LONG

Сообщение LPC или ALPC слишком велико

ERROR_PORT_MESSAGE_TOO_LONG означает, что сообщение, переданное в собственную операцию запроса порта или запроса-ответа, превышает максимально допустимый размер. Ограничение может учитывать заголовки и выравнивание, а не только байты полезной нагрузки приложения.

Распространённые причины

Диагностика

Журналируйте полный размер сообщения, размер полезной нагрузки, версию заголовка и согласованный максимум. Проверяйте все вложенные длины и защищайте операции сложения от переполнения. Воспроизводите проблему на той же архитектуре и сборке ОС.

Решение

Разделяйте данные на ограниченные фрагменты, помещайте объёмные данные в общую память или секцию с файловой поддержкой, а через порт передавайте только дескрипторы. До выделения памяти определите явные ограничения протокола.

Рекомендации по безопасности

Отклоняйте слишком большие входящие сообщения как можно раньше. Не выделяйте память только по недоверенному заявленному значению длины и не обрезайте структурированные сообщения, поскольку обрезка может изменить их смысл.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version