Bug#767750: unblock: libnet-dns-perl/0.81-1
Package: release.debian.org
Followup-For: Bug #767750
User: release.debian.org@packages.debian.org
Usertags: unblock
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Forgot to attach the diff :(
- -- System Information:
Debian Release: jessie/sid
APT prefers testing
APT policy: (990, 'testing'), (700, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQJ8BAEBCgBmBQJUVh//XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQzMEI5MzNEODBGQ0UzRDk4MUEyRDM4RkIw
Qzk5QjcwRUY0RkNCQjA3AAoJEAyZtw70/LsH5vQP+wTWt/qpu6tnPAj9hGBsUsFl
+b3b15PUTpLkd/60AQeq9+fxkflhYRRIVW8CAPFqL/fWQpbr+tGpOj8YgX0060No
2VW9xR6Jsj7NxNHEdVTxI9UHTEMezBtj1Gkbz8Xz0AmaDB/UXxx8a8y2g7sIp32r
/OTXDjOFBtMYCxW0dGmXTp/+QuAn337pUDLI1FUjS197JwSv5v9XdRZGcUKT4RZh
JXw4B9GMW+x76Hw3Ihr0DLrnG0MG+tn93lgINOngH6Sv0NR2goHhJx+vdmfasSPD
lxzP0yOgpa7C8AZ8J38y1aSLP/WbbIxZatcw/CQgwdOpVyhgiBp5LCNncB3CR+GP
Pw+f9gyN/+ys2cs/8PAoqjUZcpSJvhUx0SXfw3S25NUNbf/9uu8beN6XvzLnrU1x
ypm13nATbIZmmI/7CTu5vJ6CCwcGqbmJ0S/OdYkW80fUPKpVBKdwQ2vRk3KS/o/r
lrpxx0wmpashhw5f2NOK5qhAw8vgCGkjumiIQk/yBcNMtj9VaMcLdbKr1dq25q9/
PxI5QsV9EI+uMR++T8nqIqEltYRhh/Yi3kjWeqIIdXBC58rOK49EDEz1JJCissEt
iCyHaKR8z2CZ5f7N2LHcHvhHTFYxpSR8lDIN97O7LgLfEcFvnACtbGG4ENwdsKQ/
/Qdb50BR+/ulZdAkjp03
=0l2s
-----END PGP SIGNATURE-----
diff --git a/lib/Net/DNS/Packet.pm b/lib/Net/DNS/Packet.pm
index f79d26c..f177fb4 100644
--- a/lib/Net/DNS/Packet.pm
+++ b/lib/Net/DNS/Packet.pm
@@ -299,7 +299,7 @@ specifies the DNS zone to be updated.
=cut
sub question {
- return @{shift->{question}};
+ my @qr = @{shift->{question}};
}
sub zone {&question}
@@ -319,7 +319,7 @@ not preexist.
=cut
sub answer {
- return @{shift->{answer}};
+ my @rr = @{shift->{answer}};
}
sub pre {&answer}
@@ -339,7 +339,7 @@ specifies the RRs or RRsets to be added or deleted.
=cut
sub authority {
- return @{shift->{authority}};
+ my @rr = @{shift->{authority}};
}
sub update {&authority}
@@ -355,7 +355,7 @@ section of the packet.
=cut
sub additional {
- return @{shift->{additional}};
+ my @rr = @{shift->{additional}};
}
diff --git a/lib/Net/DNS/Parameters.pm b/lib/Net/DNS/Parameters.pm
index a6de5d2..8ec3175 100644
--- a/lib/Net/DNS/Parameters.pm
+++ b/lib/Net/DNS/Parameters.pm
@@ -216,9 +216,9 @@ sub classbyname {
my $name = shift;
$classbyname{$name} || do {
- confess "unknown type $name" unless $name =~ m/CLASS(\d+)/;
+ croak "unknown type $name" unless $name =~ m/CLASS(\d+)/;
my $val = 0 + $1;
- confess "classbyname( $name ) out of range" if $val > 0xffff;
+ croak "classbyname( $name ) out of range" if $val > 0xffff;
return $val;
}
}
@@ -228,7 +228,7 @@ sub classbyval {
$classbyval{$val} || do {
$val += 0;
- confess "classbyval( $val ) out of range" if $val > 0xffff;
+ croak "classbyval( $val ) out of range" if $val > 0xffff;
return "CLASS$val";
}
}
@@ -238,9 +238,9 @@ sub typebyname {
my $name = shift;
$typebyname{$name} || do {
- confess "unknown type $name" unless $name =~ m/TYPE(\d+)/;
+ croak "unknown type $name" unless $name =~ m/TYPE(\d+)/;
my $val = 0 + $1;
- confess "typebyname( $name ) out of range" if $val > 0xffff;
+ croak "typebyname( $name ) out of range" if $val > 0xffff;
return $val;
}
}
@@ -250,7 +250,7 @@ sub typebyval {
$typebyval{$val} || do {
$val += 0;
- confess "typebyval( $val ) out of range" if $val > 0xffff;
+ croak "typebyval( $val ) out of range" if $val > 0xffff;
return "TYPE$val";
}
}
@@ -259,7 +259,7 @@ sub typebyval {
sub opcodebyname {
my $name = shift;
return $opcodebyname{$name} if defined $opcodebyname{$name};
- confess "unknown opcode $name";
+ croak "unknown opcode $name";
}
sub opcodebyval {
@@ -272,7 +272,7 @@ sub rcodebyname {
my $arg = shift;
return $rcodebyname{$arg} if defined $rcodebyname{$arg};
return 0 + $arg if $arg =~ /^\d/;
- confess "unknown rcode $arg";
+ croak "unknown rcode $arg";
}
sub rcodebyval {
@@ -285,7 +285,7 @@ sub ednsoptionbyname {
my $arg = shift;
return $ednsoptionbyname{$arg} if defined $ednsoptionbyname{$arg};
return 0 + $arg if $arg =~ /^\d/;
- confess "unknown option $arg";
+ croak "unknown option $arg";
}
sub ednsoptionbyval {
diff --git a/lib/Net/DNS/RR.pm b/lib/Net/DNS/RR.pm
index e8ed368..9128a47 100644
--- a/lib/Net/DNS/RR.pm
+++ b/lib/Net/DNS/RR.pm
@@ -243,6 +243,7 @@ use constant RRFIXEDSZ => length pack 'n2 N n', (0) x 4;
sub decode {
my $base = shift;
my ( $data, $offset, @opaque ) = @_;
+ my $start = $offset;
my ( $owner, $fixed ) = decode Net::DNS::DomainName1035(@_);
@@ -257,12 +258,15 @@ sub decode {
my $next = $index + $self->{rdlength};
die 'corrupt wire-format data' if length $$data < $next;
+ $self->{offset} = $start;
if (COMPATIBLE) {
ref($self)->new( $self, $data, $index, @opaque );
+ delete $self->{offset};
return wantarray ? ( $self, $next ) : $self;
}
$self->decode_rdata( $data, $index, @opaque ) if $next > $index or $self->type eq 'OPT';
+ delete $self->{offset};
return wantarray ? ( $self, $next ) : $self;
}
diff --git a/lib/Net/DNS/RR/MX.pm b/lib/Net/DNS/RR/MX.pm
index 53e307f..92bf2d3 100644
--- a/lib/Net/DNS/RR/MX.pm
+++ b/lib/Net/DNS/RR/MX.pm
@@ -52,8 +52,8 @@ sub format_rdata { ## format rdata portion of RR string.
sub parse_rdata { ## populate RR from rdata in argument list
my $self = shift;
- $self->preference(shift) if @_;
- $self->exchange( shift || return );
+ $self->preference( shift || return );
+ $self->exchange(shift);
}
diff --git a/lib/Net/DNS/RR/TSIG.pm b/lib/Net/DNS/RR/TSIG.pm
index 7b6342a..b4c1980 100644
--- a/lib/Net/DNS/RR/TSIG.pm
+++ b/lib/Net/DNS/RR/TSIG.pm
@@ -75,7 +75,6 @@ sub decode_rdata { ## decode rdata from wire-format octet string
my $self = shift;
my ( $data, $offset ) = @_;
- my $eom = $offset - Net::DNS::RR->RRFIXEDSZ - length $self->{owner}->encode();
( $self->{algorithm}, $offset ) = decode Net::DNS::DomainName(@_);
# Design decision: Use 32 bits, which will work until the end of time()!
@@ -94,7 +93,7 @@ sub decode_rdata { ## decode rdata from wire-format octet string
$offset += $other_size + 2;
croak('misplaced or corrupt TSIG') unless $offset == length $$data;
- substr( $$data, $eom ) = '';
+ substr( $$data, $self->{offset} || $offset ) = '';
$self->{rawref} = $data;
}
diff --git a/lib/Net/DNS/Resolver/Recurse.pm b/lib/Net/DNS/Resolver/Recurse.pm
index c998719..16cad91 100644
--- a/lib/Net/DNS/Resolver/Recurse.pm
+++ b/lib/Net/DNS/Resolver/Recurse.pm
@@ -176,7 +176,7 @@ sub send {
$ns = []; # substitute IP list in situ
$res->empty_nameservers();
@$ns = $res->nameservers($name);
- next unless @$ns;
+ next unless scalar @$ns;
my $reply = $res->send($query) || next;
$res->{callback}->($reply) if $res->{callback};
return $reply;
Reply to: