diff --git a/avahi-0.6.25-fixcrash.patch b/avahi-0.6.25-fixcrash.patch new file mode 100644 index 0000000..c879e13 --- /dev/null +++ b/avahi-0.6.25-fixcrash.patch @@ -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-glib2.spec b/avahi-glib2.spec index 5e67c24..12b3251 100644 --- a/avahi-glib2.spec +++ b/avahi-glib2.spec @@ -31,7 +31,7 @@ Name: avahi-glib2 %define build_qt3 0 %define build_qt4 0 Version: 0.6.25 -Release: 8 +Release: 9 %if !%build_glib2 && !%build_mono && !%build_qt3 && !%build_qt4 # Create split spec files only when building per partes: #%(sh %{_sourcedir}/%{_name}_spec-prepare.sh %{_sourcedir} %{name}) @@ -68,6 +68,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.patch lnussel@suse.de -- mailed maintainer +Patch4: avahi-0.6.25-fixcrash.patch #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 @@ -644,6 +646,7 @@ translation-update-upstream %patch1 -p1 %patch2 %patch3 +%patch4 -p1 %patch10 -p1 %patch11 -p1 %if !%build_core diff --git a/avahi-mono.spec b/avahi-mono.spec index e4e753b..6368318 100644 --- a/avahi-mono.spec +++ b/avahi-mono.spec @@ -31,7 +31,7 @@ Name: avahi-mono %define build_qt3 0 %define build_qt4 0 Version: 0.6.25 -Release: 8 +Release: 9 %if !%build_glib2 && !%build_mono && !%build_qt3 && !%build_qt4 # Create split spec files only when building per partes: #%(sh %{_sourcedir}/%{_name}_spec-prepare.sh %{_sourcedir} %{name}) @@ -68,6 +68,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.patch lnussel@suse.de -- mailed maintainer +Patch4: avahi-0.6.25-fixcrash.patch #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 @@ -643,6 +645,7 @@ translation-update-upstream %patch1 -p1 %patch2 %patch3 +%patch4 -p1 %patch10 -p1 %patch11 -p1 %if !%build_core diff --git a/avahi-qt4.spec b/avahi-qt4.spec index 2b58c91..8596263 100644 --- a/avahi-qt4.spec +++ b/avahi-qt4.spec @@ -31,7 +31,7 @@ Name: avahi-qt4 %define build_qt3 0 %define build_qt4 1 Version: 0.6.25 -Release: 8 +Release: 9 %if !%build_glib2 && !%build_mono && !%build_qt3 && !%build_qt4 # Create split spec files only when building per partes: #%(sh %{_sourcedir}/%{_name}_spec-prepare.sh %{_sourcedir} %{name}) @@ -68,6 +68,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.patch lnussel@suse.de -- mailed maintainer +Patch4: avahi-0.6.25-fixcrash.patch #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 diff --git a/avahi.changes b/avahi.changes index 8310568..ba3347c 100644 --- a/avahi.changes +++ b/avahi.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jun 16 11:19:57 UTC 2010 - lnussel@suse.de + +- Add avahi-0.6.25-fixcrash.patch: 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..f0c9b56 100644 --- a/avahi.spec +++ b/avahi.spec @@ -33,7 +33,7 @@ Name: avahi %define build_qt3 0 %define build_qt4 0 Version: 0.6.25 -Release: 8 +Release: 9 %if !%build_glib2 && !%build_mono && !%build_qt3 && !%build_qt4 # Create split spec files only when building per partes: #%(sh %{_sourcedir}/%{_name}_spec-prepare.sh %{_sourcedir} %{name}) @@ -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.patch lnussel@suse.de -- mailed maintainer +Patch4: avahi-0.6.25-fixcrash.patch #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