Author: rmilecki
Date: 2015-09-08 13:03:39 +0200 (Tue, 08 Sep 2015)
New Revision: 46817

Added:
   
branches/barrier_breaker/package/network/services/dnsmasq/patches/003-Fix-crash-on-receipt-of-certa
Modified:
   branches/barrier_breaker/package/network/services/dnsmasq/Makefile
Log:
dnsmasq: backport CVE-2015-3294 security fix

Upstream release 2.73 included CVE-2015-3294 fix, let's backport patch
fixing this security issue.
This avoids bumping version to 2.73 which introduced many new features.
This way we keep dnsmasq safe and don't risk new problems.

Signed-off-by: Rafa?\197?\130 Mi?\197?\130ecki <[email protected]>

Modified: branches/barrier_breaker/package/network/services/dnsmasq/Makefile
===================================================================
--- branches/barrier_breaker/package/network/services/dnsmasq/Makefile  
2015-09-08 10:57:11 UTC (rev 46816)
+++ branches/barrier_breaker/package/network/services/dnsmasq/Makefile  
2015-09-08 11:03:39 UTC (rev 46817)
@@ -9,7 +9,7 @@
 
 PKG_NAME:=dnsmasq
 PKG_VERSION:=2.71
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq

Added: 
branches/barrier_breaker/package/network/services/dnsmasq/patches/003-Fix-crash-on-receipt-of-certa
===================================================================
--- 
branches/barrier_breaker/package/network/services/dnsmasq/patches/003-Fix-crash-on-receipt-of-certa
                         (rev 0)
+++ 
branches/barrier_breaker/package/network/services/dnsmasq/patches/003-Fix-crash-on-receipt-of-certa
 2015-09-08 11:03:39 UTC (rev 46817)
@@ -0,0 +1,37 @@
+From: Simon Kelley <[email protected]>
+Date: Thu, 9 Apr 2015 21:48:00 +0100
+Subject: [PATCH] Fix crash on receipt of certain malformed DNS requests.
+
+---
+--- a/src/rfc1035.c
++++ b/src/rfc1035.c
+@@ -1198,7 +1198,10 @@ unsigned int extract_request(struct dns_header *header, 
size_t qlen, char *name,
+ size_t setup_reply(struct dns_header *header, size_t qlen,
+               struct all_addr *addrp, unsigned int flags, unsigned long ttl)
+ {
+-  unsigned char *p = skip_questions(header, qlen);
++  unsigned char *p;
++
++  if (!(p = skip_questions(header, qlen)))
++    return 0;
+   
+   /* clear authoritative and truncated flags, set QR flag */
+   header->hb3 = (header->hb3 & ~(HB3_AA | HB3_TC)) | HB3_QR;
+@@ -1214,7 +1217,7 @@ size_t setup_reply(struct dns_header *header, size_t 
qlen,
+     SET_RCODE(header, NOERROR); /* empty domain */
+   else if (flags == F_NXDOMAIN)
+     SET_RCODE(header, NXDOMAIN);
+-  else if (p && flags == F_IPV4)
++  else if (flags == F_IPV4)
+     { /* we know the address */
+       SET_RCODE(header, NOERROR);
+       header->ancount = htons(1);
+@@ -1222,7 +1225,7 @@ size_t setup_reply(struct dns_header *header, size_t 
qlen,
+       add_resource_record(header, NULL, NULL, sizeof(struct dns_header), &p, 
ttl, NULL, T_A, C_IN, "4", addrp);
+     }
+ #ifdef HAVE_IPV6
+-  else if (p && flags == F_IPV6)
++  else if (flags == F_IPV6)
+     {
+       SET_RCODE(header, NOERROR);
+       header->ancount = htons(1);
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to