** 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 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. + * 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 + 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 - + 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 + 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, + 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, + 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. + 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. + 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!) + + The package has a test suite that runs at build time that passes ok. [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