From 82b2e2c81446296771871722d94ac35aa10ab473 Mon Sep 17 00:00:00 2001 From: ZiMing Mo Date: Thu, 8 Sep 2022 23:31:52 +0800 Subject: [PATCH] dnsmasq: bump to 2.87 rc1 Signed-off-by: ZiMing Mo --- package/network/services/dnsmasq/Makefile | 6 +- .../0001-Introduce-whine_realloc.patch | 155 ------------------ .../0002-Simplify-realloc-use-in-poll.c.patch | 48 ------ ...00-remove-old-runtime-kernel-support.patch | 4 +- .../dnsmasq/patches/200-ubus_dns.patch | 2 +- .../dnsmasq/patches/910-mini-ttl.patch | 2 +- 6 files changed, 7 insertions(+), 210 deletions(-) delete mode 100644 package/network/services/dnsmasq/patches/0001-Introduce-whine_realloc.patch delete mode 100644 package/network/services/dnsmasq/patches/0002-Simplify-realloc-use-in-poll.c.patch diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile index 89d4875b4e..c36faa1192 100644 --- a/package/network/services/dnsmasq/Makefile +++ b/package/network/services/dnsmasq/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dnsmasq -PKG_UPSTREAM_VERSION:=2.87test9 +PKG_UPSTREAM_VERSION:=2.87rc1 PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION))) PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz -PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/test-releases/ -PKG_HASH:=325d2b953e06273cd7e0ed921b464203a4a26fae7a1afedd9b26528d25951fdf +PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/release-candidates/ +PKG_HASH:=a13df87ac500bdda920197f33a07251559ff60f4fbe26f46317241bd2bade9a9 PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING diff --git a/package/network/services/dnsmasq/patches/0001-Introduce-whine_realloc.patch b/package/network/services/dnsmasq/patches/0001-Introduce-whine_realloc.patch deleted file mode 100644 index 0ad6fb61a0..0000000000 --- a/package/network/services/dnsmasq/patches/0001-Introduce-whine_realloc.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 0666ae3d27fd831e46ee9d984f4271b4ec330f5f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= -Date: Mon, 18 Jul 2022 13:30:07 +0200 -Subject: [PATCH 1/4] Introduce whine_realloc - -Move few patters with whine_malloc, if (successful) copy+free, to a new -whine_realloc. It should do the same thing, but with a help from OS it -can avoid unnecessary copy and free if allocation of more data after -current data is possible. - -Added few setting remanining space to 0, because realloc does not use -calloc like whine_malloc does. There is no advantage of zeroing what we -will immediately overwrite. Zero only remaining space. ---- - src/cache.c | 4 +--- - src/dnsmasq.h | 1 + - src/lease.c | 8 +------- - src/poll.c | 9 +++++---- - src/rrfilter.c | 16 ++++++---------- - src/util.c | 10 ++++++++++ - 6 files changed, 24 insertions(+), 24 deletions(-) - -diff --git a/src/cache.c b/src/cache.c -index a99d70d..8ed4740 100644 ---- a/src/cache.c -+++ b/src/cache.c -@@ -1676,10 +1676,8 @@ int cache_make_stat(struct txt_record *t) - { - /* expand buffer if necessary */ - newlen = bytes_needed + 1 + bufflen - bytes_avail; -- if (!(new = whine_malloc(newlen))) -+ if (!(new = whine_realloc(buff, newlen))) - return 0; -- memcpy(new, buff, bufflen); -- free(buff); - p = new + (p - buff); - lenp = p - 1; - buff = new; -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index a8937ce..990d27f 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -1396,6 +1396,7 @@ void *safe_malloc(size_t size); - void safe_strncpy(char *dest, const char *src, size_t size); - void safe_pipe(int *fd, int read_noblock); - void *whine_malloc(size_t size); -+void *whine_realloc(void *ptr, size_t size); - int sa_len(union mysockaddr *addr); - int sockaddr_isequal(const union mysockaddr *s1, const union mysockaddr *s2); - int hostname_order(const char *a, const char *b); -diff --git a/src/lease.c b/src/lease.c -index 81477d5..8a7b975 100644 ---- a/src/lease.c -+++ b/src/lease.c -@@ -1180,17 +1180,11 @@ void lease_add_extradata(struct dhcp_lease *lease, unsigned char *data, unsigned - if ((lease->extradata_size - lease->extradata_len) < (len + 1)) - { - size_t newsz = lease->extradata_len + len + 100; -- unsigned char *new = whine_malloc(newsz); -+ unsigned char *new = whine_realloc(lease->extradata, newsz); - - if (!new) - return; - -- if (lease->extradata) -- { -- memcpy(new, lease->extradata, lease->extradata_len); -- free(lease->extradata); -- } -- - lease->extradata = new; - lease->extradata_size = newsz; - } -diff --git a/src/poll.c b/src/poll.c -index 29b33a0..0e5964d 100644 ---- a/src/poll.c -+++ b/src/poll.c -@@ -105,14 +105,15 @@ void poll_listen(int fd, short event) - - arrsize = (arrsize == 0) ? 64 : arrsize * 2; - -- if (!(new = whine_malloc(arrsize * sizeof(struct pollfd)))) -+ if (!(new = whine_realloc(pollfds, arrsize * sizeof(struct pollfd)))) - return; - - if (pollfds) - { -- memcpy(new, pollfds, i * sizeof(struct pollfd)); -- memcpy(&new[i+1], &pollfds[i], (nfds - i) * sizeof(struct pollfd)); -- free(pollfds); -+ memmove(&new[i+1], &new[i], (nfds - i) * sizeof(struct pollfd)); -+ /* clear remaining space with zeroes. */ -+ if (nfds+1 < arrsize) -+ memset(new+nfds+1, 0, arrsize-nfds-1); - } - - pollfds = new; -diff --git a/src/rrfilter.c b/src/rrfilter.c -index f02f5a5..42d9c21 100644 ---- a/src/rrfilter.c -+++ b/src/rrfilter.c -@@ -159,7 +159,7 @@ static int check_rrs(unsigned char *p, struct dns_header *header, size_t plen, i - /* mode may be remove EDNS0 or DNSSEC RRs or remove A or AAAA from answer section. */ - size_t rrfilter(struct dns_header *header, size_t plen, int mode) - { -- static unsigned char **rrs; -+ static unsigned char **rrs = NULL; - static int rr_sz = 0; - - unsigned char *p = (unsigned char *)(header+1); -@@ -339,15 +339,11 @@ int expand_workspace(unsigned char ***wkspc, int *szp, int new) - return 0; - - new += 5; -- -- if (!(p = whine_malloc(new * sizeof(unsigned char *)))) -- return 0; -- -- if (old != 0 && *wkspc) -- { -- memcpy(p, *wkspc, old * sizeof(unsigned char *)); -- free(*wkspc); -- } -+ -+ if (!(p = whine_realloc(*wkspc, new * sizeof(unsigned char *)))) -+ return 0; -+ -+ memset(p+old, 0, new-old); - - *wkspc = p; - *szp = new; -diff --git a/src/util.c b/src/util.c -index ae514d2..140a354 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -336,6 +336,16 @@ void *whine_malloc(size_t size) - return ret; - } - -+void *whine_realloc(void *ptr, size_t size) -+{ -+ void *ret = realloc(ptr, size); -+ -+ if (!ret) -+ my_syslog(LOG_ERR, _("failed to reallocate %d bytes"), (int) size); -+ -+ return ret; -+} -+ - int sockaddr_isequal(const union mysockaddr *s1, const union mysockaddr *s2) - { - if (s1->sa.sa_family == s2->sa.sa_family) --- -2.37.1 - diff --git a/package/network/services/dnsmasq/patches/0002-Simplify-realloc-use-in-poll.c.patch b/package/network/services/dnsmasq/patches/0002-Simplify-realloc-use-in-poll.c.patch deleted file mode 100644 index 29c554ef29..0000000000 --- a/package/network/services/dnsmasq/patches/0002-Simplify-realloc-use-in-poll.c.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 09d741f58a50f7e9ec2d6e0634f8ab5b11a7de5f Mon Sep 17 00:00:00 2001 -From: Simon Kelley -Date: Thu, 11 Aug 2022 17:04:54 +0100 -Subject: [PATCH 2/4] Simplify realloc use in poll.c - ---- - src/poll.c | 16 ++++------------ - 1 file changed, 4 insertions(+), 12 deletions(-) - -diff --git a/src/poll.c b/src/poll.c -index 0e5964d..bbb9009 100644 ---- a/src/poll.c -+++ b/src/poll.c -@@ -96,9 +96,7 @@ void poll_listen(int fd, short event) - pollfds[i].events |= event; - else - { -- if (arrsize != nfds) -- memmove(&pollfds[i+1], &pollfds[i], (nfds - i) * sizeof(struct pollfd)); -- else -+ if (arrsize == nfds) - { - /* Array too small, extend. */ - struct pollfd *new; -@@ -108,17 +106,11 @@ void poll_listen(int fd, short event) - if (!(new = whine_realloc(pollfds, arrsize * sizeof(struct pollfd)))) - return; - -- if (pollfds) -- { -- memmove(&new[i+1], &new[i], (nfds - i) * sizeof(struct pollfd)); -- /* clear remaining space with zeroes. */ -- if (nfds+1 < arrsize) -- memset(new+nfds+1, 0, arrsize-nfds-1); -- } -- - pollfds = new; - } -- -+ -+ memmove(&pollfds[i+1], &pollfds[i], (nfds - i) * sizeof(struct pollfd)); -+ - pollfds[i].fd = fd; - pollfds[i].events = event; - nfds++; --- -2.37.1 - diff --git a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch index e2d069fd51..b1b134a98c 100644 --- a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch +++ b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch @@ -35,7 +35,7 @@ Signed-off-by: Kevin Darbyshire-Bryant #elif defined(HAVE_BSD_NETWORK) int dhcp_raw_fd, dhcp_icmp_fd, routefd; #endif -@@ -1421,9 +1421,6 @@ int read_write(int fd, unsigned char *pa +@@ -1422,9 +1422,6 @@ int read_write(int fd, unsigned char *pa void close_fds(long max_fd, int spare1, int spare2, int spare3); int wildcard_match(const char* wildcard, const char* match); int wildcard_matchn(const char* wildcard, const char* match, int num); @@ -140,7 +140,7 @@ Signed-off-by: Kevin Darbyshire-Bryant my_syslog(LOG_ERR, _("failed to update ipset %s: %s"), setname, strerror(errno)); --- a/src/util.c +++ b/src/util.c -@@ -823,22 +823,3 @@ int wildcard_matchn(const char* wildcard +@@ -833,22 +833,3 @@ int wildcard_matchn(const char* wildcard return (!num) || (*wildcard == *match); } diff --git a/package/network/services/dnsmasq/patches/200-ubus_dns.patch b/package/network/services/dnsmasq/patches/200-ubus_dns.patch index 2603f4e1ab..c4cc1df207 100644 --- a/package/network/services/dnsmasq/patches/200-ubus_dns.patch +++ b/package/network/services/dnsmasq/patches/200-ubus_dns.patch @@ -1,6 +1,6 @@ --- a/src/dnsmasq.h +++ b/src/dnsmasq.h -@@ -1597,14 +1597,26 @@ void emit_dbus_signal(int action, struct +@@ -1598,14 +1598,26 @@ void emit_dbus_signal(int action, struct /* ubus.c */ #ifdef HAVE_UBUS diff --git a/package/network/services/dnsmasq/patches/910-mini-ttl.patch b/package/network/services/dnsmasq/patches/910-mini-ttl.patch index 91750b3a93..362d0cb1ec 100644 --- a/package/network/services/dnsmasq/patches/910-mini-ttl.patch +++ b/package/network/services/dnsmasq/patches/910-mini-ttl.patch @@ -1,6 +1,6 @@ --- a/src/dnsmasq.h +++ b/src/dnsmasq.h -@@ -1139,7 +1139,7 @@ extern struct daemon { +@@ -1141,7 +1141,7 @@ extern struct daemon { int max_logs; /* queue limit */ int cachesize, ftabsize; int port, query_port, min_port, max_port;