[Pkg-xmpp-devel] Bug#493599: pushing udns into squeeze

Florian Weimer fw at deneb.enyo.de
Thu Dec 2 20:06:21 UTC 2010


* Michael Tokarev:

>> udns doesn't handle truncation, so it won't play well with the
>> PowerDNS recursor (which doesn't support EDNS).
>
> One of the limitations of simplicity of design - only one
> socket and it's obviously UDP.  With deployment of DNSSEC
> everywhere EDNS support becomes a requiriment, because of
> the size of DNSSEC records, so this problem becomes less
> and less of an issue.  Yes I understand this is where
> udns does not conform to standards.



>> The domain name parser triggers undefined behavior for certain inputs
>> because it performs out-of-bound pointer arithmetic.  This is unlikely
>> to cause practical problems with current GCC versions (but LTO might
>> change this).
>
> And here goes my main question.
>
> http://www.corpit.ru/mjt/udns_dn.c is the code in question, the
> domain parser.  Florian, can you please tell me where do you think
> it performs such oob arith?

I think I was referring to loop exit conditions such as:

  while(--s >= (dnscc_t *)addr) {

These are problematic if the compiler can prove that addr does not
point into an array of suitable struct ?_addr objects.



More information about the Pkg-xmpp-devel mailing list