Net::DNS::ZoneFile::Fast::parse returns bad data after reading zone text containing $INCLUDE

Bug #1083109 reported by Ian Chard
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
dnssec-tools (Debian)
Fix Released
Unknown
dnssec-tools (Ubuntu)
New
Undecided
Unassigned

Bug Description

If I run Net::DNS::ZoneFile::Fast::parse with zone text containing a $INCLUDE directive, the second zone I try to parse returns only the included records.

Test script:

 use Net::DNS::ZoneFile::Fast;
 use Data::Dumper;

 open ZONE, 'something.com' or die;
 $txt.=$_ while(<ZONE>);
 close ZONE;

 $r1=Net::DNS::ZoneFile::Fast::parse($txt);
 print Dumper($r1);

 open ZONE, 'whatever.com' or die;
 $moink.=$_ while(<ZONE>);
 close ZONE;

 $r2=Net::DNS::ZoneFile::Fast::parse($moink);
 print Dumper($r2);

Contents of 'something.com':

$TTL 1H

@ IN SOA ns0.something.com. hostmaster.something.com. (
                        2012112601 ; serial number YYYYMMDDNN
                        30m ; refresh
                        10m ; retry
                        1d ; expire
                        10m ) ; negative TTL

; Name servers
                NS ns0.something.com.
                NS ns1.something.com.

$INCLUDE "include-file"

Contents of 'whatever.com':

$TTL 1h

@ SOA ns0.whatever.com. hostmaster.whatever.com. (
                2010112201 ; Serial
                30m ; Refresh
                10m ; Retry
                10d ; Expire
                30m ; Negative TTL
                )

; Name servers
                NS ns0.whatever.com.
                NS ns1.whatever.com.

Contents of 'include-file':

wibble IN A 1.2.3.4

The second Dumper() output looks like

$VAR1 = [
          bless( {
                   'ttl' => 0,
                   'name' => 'wibble',
                   'rdata' => '[binary data]',
                   'rdlength' => 4,
                   'Lines' => 1,
                   'Line' => 1,
                   'type' => 'A',
                   'class' => 'IN',
                   'address' => '1.2.3.4'
                 }, 'Net::DNS::RR::A' )
        ];

If I comment out the single entry in 'include-file', I get nothing at all:

$VAR1 = [];

but if I comment out the $INCLUDE directive, the results are correct:

$VAR1 = [
          bless( {
                   'minimum' => 1800,
                   'serial' => 2010112201,
                   'ttl' => 3600,
                   'mname' => 'ns0.whatever.com',
                   'name' => '',
                   'rdata' => '[binary data],
                   'retry' => 600,
                   'refresh' => 1800,
                   'rdlength' => 51,
                   'Lines' => 7,
                   'Line' => 3,
                   'type' => 'SOA',
                   'class' => 'IN',
                   'expire' => 864000,
                   'rname' => 'hostmaster.whatever.com'
                 }, 'Net::DNS::RR::SOA' ),
          bless( {
                   'nsdname' => 'ns0.whatever.com',
                   'ttl' => 3600,
                   'name' => '',
                   'rdata' => '[binary data]',
                   'rdlength' => 18,
                   'Lines' => 1,
                   'Line' => 12,
                   'type' => 'NS',
                   'class' => 'IN'
                 }, 'Net::DNS::RR::NS' ),
          bless( {
                   'nsdname' => 'ns1.whatever.com',
                   'ttl' => 3600,
                   'name' => '',
                   'rdata' => '[binary data]',
                   'rdlength' => 18,
                   'Lines' => 1,
                   'Line' => 13,
                   'type' => 'NS',
                   'class' => 'IN'
                 }, 'Net::DNS::RR::NS' )
        ];

ProblemType: Bug
DistroRelease: Ubuntu 12.10
Package: dnssec-tools 1.13-1
ProcVersionSignature: Ubuntu 3.5.0-18.29-generic 3.5.7
Uname: Linux 3.5.0-18-generic x86_64
ApportVersion: 2.6.1-0ubuntu6
Architecture: amd64
Date: Mon Nov 26 10:01:46 2012
EcryptfsInUse: Yes
InstallationDate: Installed on 2012-05-04 (205 days ago)
InstallationMedia: Xubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
MarkForUpload: True
PackageArchitecture: all
SourcePackage: dnssec-tools
UpgradeStatus: Upgraded to quantal on 2012-11-01 (24 days ago)

Revision history for this message
Ian Chard (ian-chard) wrote :
summary: - Net::DNS::ZoneFile::Fast::parse returns bad data after reading a zone
- with $INCLUDE
+ Net::DNS::ZoneFile::Fast::parse returns bad data after reading zone text
+ containing $INCLUDE
Changed in dnssec-tools (Debian):
status: Unknown → Confirmed
Changed in dnssec-tools (Debian):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.