[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: