pkg-perl-maintainers team mailing list archive
-
pkg-perl-maintainers team
-
Mailing list archive
-
Message #05053
[Bug 2083236] Re: [SRU] Net::IP->intip return undef for IP 0.0.0.0 instead of 0
** 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
References