slife has asked for the wisdom of the Perl Monks concerning the following question:
Hello everyone,
I've recently been using Net::DNS as part of a project at work, and have been blocked by this bug.
It appears that subroutine new_from_string is too naive when stripping comments, and fails to cope with semi-colons embedded within TXT data.
I'm proposing the following simple patch to resolve this, and would like the opinions of the brethren before I consider passing it on to the maintainer.
The patched code passes all the tests provided with the current (v0.48) Net::DNS distribution.
Thanks in advance for any comments.
--- Net-DNS-0.48/lib/Net/DNS/RR.pm 2004-08-12 06:48:00.000000000 ++0100 +++ SC-Net-DNS-0.48/lib/Net/DNS/RR.pm 2004-12-13 15:56:19.583003131 ++0000 @@ -250,9 +250,6 @@ build_regex() unless $RR_REGEX; - # strip out comments - $rrstring =~ s/;.*//g; - ($rrstring =~ m/$RR_REGEX/xso) || confess qq|qInternal Error: "$rrstring" did not match +RR pat.\nPlease report this to the author!\n|; @@ -265,8 +262,20 @@ my $rdata = $5 || ''; $rdata =~ s/\s+$// if $rdata; - $name =~ s/\.$// if $name; + # strip out comments + if($rrtype eq 'TXT') { + if(($rdata)=~m[;]) { + if(($rdata)=~m[^(".*")($|\s*;)]) { + $rdata = $1; + } else { + ($rdata)=~s/;.*//g; + } + } + } else { + ($rdata)=~s/;.*//g; + } + $name =~ s/\.$// if $name; # RFC3597 tweaks # This converts to known class and type if specified as TYPE## +#
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Net::DNS::RR patch
by ikegami (Patriarch) on Dec 13, 2004 at 16:34 UTC | |
by slife (Scribe) on Dec 16, 2004 at 10:23 UTC | |
by ikegami (Patriarch) on Dec 16, 2004 at 16:53 UTC |