File avahi-null-packet-infinite-loop.patch of Package avahi

Index: avahi-0.6.25/avahi-core/socket.c
===================================================================
--- avahi-0.6.25.orig/avahi-core/socket.c
+++ avahi-0.6.25/avahi-core/socket.c
@@ -652,10 +652,6 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
         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);
@@ -682,6 +678,10 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
         goto fail;
     }
 
+    /* corrupt packets have zero size */
+    if (!ms)
+        goto fail;
+
     if (sa.sin_addr.s_addr == INADDR_ANY) {
         /* Linux 2.4 behaves very strangely sometimes! */
         goto fail;
@@ -809,10 +809,6 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
         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);
@@ -840,6 +836,10 @@ AvahiDnsPacket *avahi_recv_dns_packet_ip
         goto fail;
     }
 
+    /* corrupt packets have zero size */
+    if (!ms)
+        goto fail;
+
     assert(!(msg.msg_flags & MSG_CTRUNC));
     assert(!(msg.msg_flags & MSG_TRUNC));
 
openSUSE Build Service is sponsored by