Ticket #84: avahi-compressed_dns.patch

File avahi-compressed_dns.patch, 0.9 kB (added by tedp, 2 years ago)
  • dns.c

    old new  
    331331static int consume_labels(AvahiDnsPacket *p, unsigned idx, char *ret_name, size_t l) { 
    332332    int ret = 0; 
    333333    int compressed = 0; 
    334     int first_label = 1
     334    int first_label = 1, label_ptr
    335335    assert(p && ret_name && l); 
    336336     
    337337    for (;;) { 
     
    384384            if (idx+2 > p->size) 
    385385                return -1; 
    386386 
    387             idx = ((unsigned) (AVAHI_DNS_PACKET_DATA(p)[idx] & ~0xC0)) << 8 | AVAHI_DNS_PACKET_DATA(p)[idx+1]; 
     387            label_ptr = ((unsigned) (AVAHI_DNS_PACKET_DATA(p)[idx] & ~0xC0)) << 8 | AVAHI_DNS_PACKET_DATA(p)[idx+1]; 
    388388 
     389            if (label_ptr >= idx) 
     390                return -1; 
     391 
     392            idx = label_ptr; 
     393 
    389394            if (!compressed) 
    390395                ret += 2; 
    391396