[Pkg-utopia-maintainers] Bug#567067: libavahi-core6: avahi incorrectly ignores mDNS response records containing link-local addresses

Tommaso Colombo zibo86 at hotmail.com
Wed Jan 27 03:00:05 UTC 2010


Package: libavahi-core6
Version: 0.6.25-3
Severity: normal
Tags: patch

Patch "30_dont_reflect_link-local_addresses.patch" added in revision 0.6.25-3 introduced a regression that causes the mDNS response handler to completely ignore records with link-local addresses. To reproduce this bug just try to use avahi-resolve-host-name to lookup an host with a link-local IP address. The attached patch seems to resolve the bug.

The upstream bug report is at: http://avahi.org/ticket/300.

Regards,
Tommaso Colombo

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libavahi-core6 depends on:
ii  libavahi-common3              0.6.25-3   Avahi common library
ii  libc6                         2.10.2-5   Embedded GNU C Library: Shared lib

libavahi-core6 recommends no packages.

libavahi-core6 suggests no packages.

-- no debconf information
-------------- next part --------------
>From 43ea314b2c548da83cb8c5e3e1d8380bb7ef0e8d Mon Sep 17 00:00:00 2001
From: Tommaso Colombo <colombo at icascan4.pv.infn.it>
Date: Wed, 27 Jan 2010 02:43:11 +0100
Subject: [PATCH] core: Don't ignore records with link-local addresss

Fix a regression introduced by commit 2ea7e99ed0dcfd371fef5aeecd3de77da1dfcd4f that caused the mDNS response handler to completely ignore records with link-local addresses.
---
 avahi-core/server.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/avahi-core/server.c b/avahi-core/server.c
index 8955af9..aa3c6b5 100644
--- a/avahi-core/server.c
+++ b/avahi-core/server.c
@@ -666,10 +666,10 @@ static void handle_response_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInter
             break;
         }
 
-        if (!avahi_key_is_pattern(record->key) && !avahi_record_is_link_local_address(record)) {
+        if (!avahi_key_is_pattern(record->key)) {
 
             if (handle_conflict(s, i, record, cache_flush)) {
-                if (!from_local_iface)
+                if (!from_local_iface && !avahi_record_is_link_local_address(record)) 
                     reflect_response(s, i, record, cache_flush);
                 avahi_cache_update(i->cache, record, cache_flush, a);
                 avahi_response_scheduler_incoming(i->response_scheduler, record, cache_flush);
-- 
1.6.6



More information about the Pkg-utopia-maintainers mailing list