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