Bug 61242
| Summary: | error() не импортирована в SRU::Response::Diagnostic | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Лавренко Егор Сергеевич <lavrenkoes> |
| Component: | perl-SRU | Assignee: | Vitaly Lipatov <lav> |
| Status: | RESOLVED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | at, cas, crux, ender, lav, ldv, mike, qa_viy, shaba, viy |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
perl-SRU-1.01-alt2.1 -> sisyphus: Thu Oct 29 2026 Vitaly Lipatov <lav@altlinux.ru> 1.01-alt2.1 - NMU: fixed unknown diagnostic code handling (closes: #61242) - added BuildRequires: perl-XML-LibXML (required to build the package). |

Description
Лавренко Егор Сергеевич 2026-10-28 10:50:00 MSKСистемы: Alt Workstation 11.2 x86-64 Alt Workstation K 11.4 x86-64 Alt Education 11.2 XFCE x86-64 Alt Education 11.2 KDE x86-64 Alt Server 11.1 x86-64 (Обновленная до Sisyphus) Описание ошибки: В SRU/Utils.pm определена функция error($msg) - она пишет сообщение в глобальную $SRU::Error и возвращает undef; это штатный способ сигнализировать об ошибке во всём пакете SRU (our @EXPORT_OK = qw( error )). В SRU/Response/Term.pm и SRU/Response.pm она корректно импортирована (use SRU::Utils qw( error );). А в SRU/Response/Diagnostic.pm - нет: там только use SRU::Utils::XML qw( element elementNoEscape );, но при этом newFromCode() вызывает error(...): sub newFromCode { my ($class,$code,$details) = @_; return error( "no such diagnostic code ($code)" ) # <-- error() не импортирована if ! exists $DIAG{$code}; ... } Шаги для воспроизведения: 1. Установить пакет: # apt-get install perl-SRU 2. Выполнить: $ perl -MSRU::Response::Diagnostic -e 'SRU::Response::Diagnostic->newFromCode(999)' Ожидаемое поведение: При неизвестном коде newFromCode() возвращает undef и кладёт сообщение в $SRU::Error, ничего не печатая. Реальное поведение: Undefined subroutine &SRU::Response::Diagnostic::error called at /usr/share/perl5/SRU/Response/Diagnostic.pm line 117. Дополнительно: 1. Воспроизводится в P11