** Description changed: + [ Impact ] + + * This perl module doesn't calculate correctly the equivalent integer value for + an IP of only zeros (0.0.0.0). + + * This leads to unpredictable error-prone behavior in the pieces of code that + use it because an uninitialised value is not expected as a result of the + intip conversion. + + [ Test Plan ] + + Using the script attached in comment #4 we could see the bad case and + validate the good one. + + #0 Preparation in a container (e.g., Focal) + #0.0 Enabling container + lxc launch ubuntu-daily:focal Flibnet-ip-perl + lxc shell Jpostfix + apt update && apt Flibnet-ip-perl + #0.1 Getting test script and install requirements packages to be executed: + apt install libnet-ip-perl libdata-dumper-concise-perl + wget https://bugs.launchpad.net/ubuntu/+source/libnet-ip-perl/+bug/2083236/+attachment/5827083/+files/ip_intip_method.pl + + + #1 Execution + perl ip_intip_method.pl 0.0.0.0 + + ### Bad case + # Note the error message and the errno and error + + root@Flibnet-ip-perl:~# perl ip_intip_method.pl 0.0.0.0 + Use of uninitialized value in concatenation (.) or string at ip_intip_method.pl line 15. + "IP : 0.0.0.0" + "Int : " + + bless( { + binip => "00000000000000000000000000000000", + binmask => "11111111111111111111111111111111", + errno => undef, + error => undef, + ip => "0.0.0.0", + ipversion => 4, + is_prefix => 1, + last_bin => "00000000000000000000000000000000", + last_ip => "0.0.0.0", + prefixlen => 32, + }, 'Net::IP' ) + + ### Good case (after upgrading package from proposed following [1]) + # Note that error message disappears and it return an Math::BigInt object (intformat with value of 0) + + root@Flibnet-ip-perl:~# perl ip_intip_method.pl 0.0.0.0 + "IP : 0.0.0.0" + "Int : 0" + + bless( { + binip => "00000000000000000000000000000000", + binmask => "11111111111111111111111111111111", + intformat => bless( { + sign => "+", + value => bless( [ + 0, + ], 'Math::BigInt::Calc' ), + }, 'Math::BigInt' ), + ip => "0.0.0.0", + ipversion => 4, + is_prefix => 1, + last_bin => "00000000000000000000000000000000", + last_ip => "0.0.0.0", + prefixlen => 32, + }, 'Net::IP' ) + + + [1] https://wiki.ubuntu.com/Testing/EnableProposed + + [ Where problems could occur ] + + The change affects only operations that involve the necessity of having the + IP as an integer, so there shouldn't be regressions for other computations. + + Nevertheless, programmers who didn't notice this undefined value could see + differences when executing ad-hoc code that uses this perl module. If they were + conscious of it but put remedies in place (with exceptions u other + mechanisms), they wouldn't notice the change, but that code will no longer + needed. + + [ Other Info ] + + The fix has been incorporated in Debian as per comment #5 (thanks + Gregor!) + + [Original Report] + -------------------------------------------------------------------------------- + This issue is related to CPAN RT#60439 (https://rt.cpan.org/Public/Bug/Display.html?id=60439) which was closed but never integrated to the lib code.
-- You received this bug notification because you are a member of Debian Perl Group, which is subscribed to libnet-ip-perl in Ubuntu. https://bugs.launchpad.net/bugs/2083236 Title: [SRU] Net::IP->intip return undef for IP 0.0.0.0 instead of 0 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libnet-ip-perl/+bug/2083236/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~pkg-perl-maintainers Post to : pkg-perl-maintainers@lists.launchpad.net Unsubscribe : https://launchpad.net/~pkg-perl-maintainers More help : https://help.launchpad.net/ListHelp