diff --git a/avahi-0.6.25-fixcrash.diff b/avahi-0.6.25-fixcrash.diff new file mode 100644 index 0000000..c879e13 --- /dev/null +++ b/avahi-0.6.25-fixcrash.diff @@ -0,0 +1,30 @@ +From ae19b3039335999e3c06f2bec9ae11ee79b204c1 Mon Sep 17 00:00:00 2001 +From: Ludwig Nussel +Date: Wed, 19 May 2010 15:43:44 +0200 +Subject: [PATCH] ignore packet if FIONREAD returns zero + +zero size is reported for corrupt packets. recvmsg() later could +nevertheless get data from a good packet that followed the bad one. +So get out early to avoid hitting an assertion. +--- + avahi-core/socket.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/avahi-core/socket.c b/avahi-core/socket.c +index 4146d5a..8b9736a 100644 +--- a/avahi-core/socket.c ++++ b/avahi-core/socket.c +@@ -805,6 +805,10 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv6( + goto fail; + } + ++ /* corrupt packets have zero size */ ++ if (!ms) ++ goto fail; ++ + p = avahi_dns_packet_new(ms + AVAHI_DNS_PACKET_EXTRA_SIZE); + + io.iov_base = AVAHI_DNS_PACKET_DATA(p); +-- +1.6.4.2 + diff --git a/avahi.changes b/avahi.changes index 8310568..2f7cb2f 100644 --- a/avahi.changes +++ b/avahi.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jun 16 11:19:57 UTC 2010 - lnussel@suse.de + +- avoid crash due to assertion when receiving corrupt packets + ------------------------------------------------------------------- Sat May 1 01:54:24 UTC 2010 - aj@suse.de diff --git a/avahi.spec b/avahi.spec index a13089f..644afbf 100644 --- a/avahi.spec +++ b/avahi.spec @@ -70,6 +70,8 @@ Patch1: avahi-desktop.patch Patch2: avahi-init-lsb.patch #PATCH-FIX-UPSTREAM avahi-empty-share-dir.patch jpr@novell.com -- mailed maintainer Patch3: avahi-empty-share-dir.patch +#PATCH-FIX-UPSTREAM avahi-0.6.25-fixcrash.diff lnussel@suse.de -- mailed maintainer +Patch4: avahi-0.6.25-fixcrash.diff #PATCH-FIX-OPENSUSE avahi-unicastdomains.patch bnc433359 lnussel@suse.de -- disable pre-set unicast domains by default Patch10: avahi-unicastdomains.patch # PATCH-FIX-UPSTREAM avahi-init_unused-not-dead.patch bnc#329708 dimstar@opensuse.org -- Report unused instead of dead @@ -646,6 +648,7 @@ translation-update-upstream %patch1 -p1 %patch2 %patch3 +%patch4 -p1 %patch10 -p1 %patch11 -p1 %if !%build_core