Changed files:
avahi-compressed_dns.patch -> 1.1
avahi-netlink.patch -> 1.1
--- /dev/null
+Index: avahi-core/dns.c
+===================================================================
+--- avahi-core/dns.c (Revision 1339)
++++ avahi-core/dns.c (Arbeitskopie)
+@@ -331,7 +331,7 @@
+ static int consume_labels(AvahiDnsPacket *p, unsigned idx, char *ret_name, size_t l) {
+ int ret = 0;
+ int compressed = 0;
+- int first_label = 1;
++ int first_label = 1, label_ptr;
+ assert(p && ret_name && l);
+
+ for (;;) {
+@@ -384,8 +384,13 @@
+ if (idx+2 > p->size)
+ return -1;
+
+- idx = ((unsigned) (AVAHI_DNS_PACKET_DATA(p)[idx] & ~0xC0)) << 8 | AVAHI_DNS_PACKET_DATA(p)[idx+1];
++ label_ptr = ((unsigned) (AVAHI_DNS_PACKET_DATA(p)[idx] & ~0xC0)) << 8 | AVAHI_DNS_PACKET_DATA(p)[idx+1];
+
++ if (label_ptr >= idx)
++ return -1;
++
++ idx = label_ptr;
++
+ if (!compressed)
+ ret += 2;
+
--- /dev/null
+Index: avahi-core/netlink.c
+===================================================================
+--- avahi-core/netlink.c (revision 1329)
++++ avahi-core/netlink.c (working copy)
+@@ -62,6 +62,12 @@
+
+ p = (struct nlmsghdr *) nl->buffer;
+
++ /* Check that this message originated from the kernel,
++ or a request from avahi itself, and not another process */
++ if ((p->nlmsg_pid != 0) && (p->nlmsg_pid != getpid())) {
++ return -1;
++ }
++
+ assert(nl->callback);
+
+ for (; bytes > 0; p = NLMSG_NEXT(p, bytes)) {