| Предыдущий | Следующий |
| TRUST_E_FINANCIAL_CRITERIA | MSSIPOTF_E_CANTGETOBJECT |
MSSIPOTF_E_OUTOFMEMRANGE
Диапазон из каталога выходит за пределы файла шрифта
MSSIPOTF_E_OUTOFMEMRANGE относится к диапазону байтов, на который ссылается шрифт, а не к обычной нехватке памяти процесса. Записи каталога таблиц OpenType описывают каждую таблицу с помощью смещения и длины. Если средство проверки не может разместить этот диапазон целиком в отображённом файле, оно должно остановиться, прежде чем интерпретировать произвольные байты как данные шрифта.
К такому состоянию могут привести неполная загрузка, повреждённый каталог таблиц, смещение, не исправленное после удаления таблицы, или арифметическое переполнение в программе, сформировавшей шрифт. Эта ошибка отличается от MSSIPOTF_E_FILETOOSMALL: данный код указывает на попытку обратиться за пределы допустимого отображённого диапазона, тогда как второй код означает, что последняя таблица выходит за конец файла.
Как провести диагностику
- Сохраните исходный файл и до внесения изменений сравните его длину в байтах и хеш с исходным артефактом.
- Выведите каталог таблиц командой
ttx -lили с помощью другого независимого анализатора, затем сопоставьте каждое значениеoffset + lengthс размером файла. - Пересоберите шрифт из исходных данных вместо исправления смещений в подписанном двоичном файле: изменение структуры также меняет контрольные суммы и данные подписи.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
