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

 
Предыдущий Следующий
WSA_QOS_EFILTERCOUNT WSA_QOS_EFLOWCOUNT

WSA_QOS_EOBJLENGTH

ObjectLength ограничивает каждый типизированный объект внутри байтового буфера

WSA_QOS_EOBJLENGTH означает, что значение QOS_OBJECT_HDR.ObjectLength не может описывать полный допустимый объект. Длина должна включать заголовок и полезную нагрузку объекта, оставаться в пределах охватывающего буфера ProviderSpecific и позволять анализатору найти следующий объект. Даже правильный тип структуры с неверной длиной небезопасен для обработки.

Обходите буфер по явным байтовым смещениям и проверяйте, что каждая длина не меньше минимального размера для ObjectType. До прибавления длины к текущему смещению выявляйте арифметическое переполнение. Особенно внимательно проверяйте упакованные структуры, копируемые между 32- и 64-разрядными процессами, и данные политик переменной длины. Не заменяйте заявленную длину значением sizeof безусловно, если объект содержит хвостовые данные.

Инварианты длины, которые следует проверить

  • ObjectLength включает QOS_OBJECT_HDR.
  • Конец объекта не выходит за WSABUF.len.
  • Следующий объект начинается по ожидаемому смещению.
  • Размер переменной полезной нагрузки соответствует внутреннему счётчику.

Ссылки


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