在我的新 Debian Bookworm 上,/usr/share/perl5/Net/Server/Fork.pm
每次 Munin 调用该文件时,该文件都会在日志中生成错误。记录的错误是
“在 /usr/share/perl5/Net/Server/Fork.pm 第 168 行的数字 eq (==) 中使用未初始化的值。”
在 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 行是最后一个差异,出现问题的地方。
我不懂 Perl,那么如何解决这个问题并将错误报告给 Perl 包所有者?
看起来这个问题已经报告给了github perl-net-server issue 32中的项目。你可以在那里添加你自己的分析,看看这是否能得到更好的关注。
我没有在中央 Perl 错误跟踪系统中看到它的报告,因此您可能希望将它添加到那里。如果是这样,请包含指向 github 问题的链接。
对此的代码修复应该非常简单:
假设代码中附近没有使用变量名。