Viktor Dukhovni <ietf-d...@dukhovni.org> wrote:
>
>     c.  The most recent pointer expands to a domain that moves
>         past the location of the pointer, without arriving at that
>         pointer, because it is just part of the data of some label.
>         For example:
>
>            ... 10 05 l a r r y 10 m o e  NNN MMM     c u r l y [...]
>               | initial length 10 label |ptr 10 back|
>                  |len 5 label |len 10 pointer-skipping label |
>
>         yielding the domain name:
>
>               \005larry\010moe.larry.moe\NNN\MMMcurly.[...]

That's disgusting :-)

The high-water-mark algorithm forbids it, though, because the "ptr 10
back" does not go back before the HWM, which is the initial octet
with value 10. (BIND and Net::DNS use the HWM algorithm, for example.)

But you can pull a similar overlap trick if you reach back a little
further, like this:

        #!/usr/bin/perl
        use Net::DNS;
        my $buffer = "\x06\x03foo\xc0\x00\x03bar\x00";
        my $dn = decode Net::DNS::DomainName (\$buffer, 1);
        printf "%s\n", $dn->string;

output is:

        foo.\003foo\192\000.bar.

Tony.
-- 
f.anthony.n.finch  <d...@dotat.at>  http://dotat.at/
Humber: West or northwest 4 or 5, occasionally 6 until later. Moderate or
rough. Mainly fair. Moderate or good.

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to