Использование неинициализированного значения в числовом выражении (==) в /usr/share/perl5/Net/Server/Fork.pm, строка 168.

На моем новом Debian Bookworm файл /usr/share/perl5/Net/Server/Fork.pm генерирует ошибку в журналах каждый раз, когда Munin вызывает его. Зарегистрированная ошибка

«Использование неинициализированного значения в числовом выражении (==) в /usr/share/perl5/Net/Server/Fork.pm, строка 168».

В Debian Bullseye ошибки нет.

Кстати, вот отличия двух версий:

5c5
< #  Copyright (C) 2001-2017
---
> #  Copyright (C) 2001-2022
146a147
>         $self->register_child($pid, 'fork');
167c168
<     if (SOCK_DGRAM == $sock->getsockopt(SOL_SOCKET,SO_TYPE)) {
---
>     if (SOCK_DGRAM == unpack('i', $sock->getsockopt(SOL_SOCKET, SO_TYPE))) {

Строка 168 — это последний diff, где возникает проблема.

Я не знаю Perl, так как я могу решить эту проблему и сообщить об ошибке владельцу пакета Perl?

Дом

1 ответ
1

Похоже, что об этой проблеме уже сообщалось в проекте в github perl-net-сервер проблема 32. Вы можете добавить туда свой собственный анализ, чтобы увидеть, может ли это привлечь больше внимания.

Я не вижу, чтобы об этом сообщалось в центральная система отслеживания ошибок Perl так что вы можете добавить его туда. Если это так, пожалуйста, включите ссылку на проблему github.

Исправление кода для этого должно быть довольно простым:

my $sockopt = unpack('i', $sock->getsockopt(SOL_SOCKET, SO_TYPE));
if (defined $sockopt and SOCK_DGRAM == $sockopt) {

предполагая, что имя переменной не используется поблизости в коде.

цыплята

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *