Subject: | Bug Report |
Date: | Tue, 9 Jun 2009 19:40:38 +0530 |
To: | bug-Net-DNS-ZoneFile-Fast [...] rt.cpan.org |
From: | Anirban Mukherjee <amukherj [...] gmail.com> |
Distribution: perl-Net-DNS-ZoneFile-Fast-0.91-1.el5.rf
Perl version: v5.8.8 built for x86_64-linux-thread-multi
OS: Linux ... 2 2.6.18-92.1.22.el5 #1 SMP ... x86_64 x86_64 x86_64 GNU/Linux
Description:
RRSIG and NSEC records not being parsed correctly for a signed root zone
file
Instructions to reproduce:
1. Download the signed root zone file from IANA testbed i.e.
https://ns.iana.org/dnssec/root.zone.signed
2. Create a file test.pl in the same directory with the below contents.
Provide execute permissions.
#!/usr/bin/perl
use Net::DNS::ZoneFile::Fast;
my $zonefile = $ARGV[0];
my $rrlist = Net::DNS::ZoneFile::Fast::parse(file=>$zonefile);
3. Run the program
$ ./test.pl root.zone.signed
Error Message:
bad rrsig second line, line 11
...propagated at
/usr/lib/perl5/vendor_perl/5.8.8/Net/DNS/ZoneFile/Fast.pm line 149, <GEN0>
line 11.
More details:
This is with reference to
http://cpansearch.perl.org/src/HARDAKER/Net-DNS-ZoneFile-Fast-1.11/Fast.pm
Changing the following lines as indicated below allows the above program to
work fine.
Line 749 : } elsif
(/\G(\d+)\s+(\d+)\s+($pat_maybefullname)\s+([^=]+=)\s*/gc) {
=> } elsif (/\G(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)\s+([^=]+=)\s*/gc)
{
Line 817: if (/\G\s*($pat_maybefullname)\s+(.*)$pat_skip$/gc) {
=> if (/\G\s*($pat_maybefullnameorroot)\s+(.*)$pat_skip$/gc) {
Line 1031: if (/\G\s*(\d+)\s+(\d+)\s+($pat_maybefullname)/gc) {
=> if (/\G\s*(\d+)\s+(\d+)\s+($pat_maybefullnameorroot)/gc) {