НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.3 >> [I128-2463] DP_Irbis64: RecRead не обрабатывает ошибочный ответ SendPacket📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.2.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль DP_Irbis64 - Провайдер данных к TCP/IP серверу ИРБИС 64/64+
Завершено: 29.06.2026 13:41
Проблема При чтении записи через DP_Irbis64 метод RecRead предполагал, что SendPacket('C', ...) всегда возвращает массив строк ответа сервера. Если сервер ИРБИС возвращал код ошибки или другой немассивный ответ, RecRead обращался к $r10 и мог завершаться PHP-ошибкой вместо корректной передачи ошибки вызывающему коду.
Дополнительно при инициализации провайдера порт из iniфайла передавался как строка, хотя TCPподключение ожидает числовое значение порта.
Причина В RecRead отсутствовала проверка типа результата SendPacket перед разбором пакета. В InitProvider значение PROVIDER.PORT не приводилось к int.
Исправление
Документация Изменение исправляет защитную обработку внутреннего ответа TCP/IP-провайдера и не требует изменения пользовательской документации.