aboutsummaryrefslogtreecommitdiffstats
path: root/main/dnsmasq
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2019-12-19 09:05:54 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2019-12-19 09:05:54 +0000
commit3ea61d40651914e0706601cd8b7c05fcaafe089a (patch)
tree1cbff090f804467e1e9db413fea2a843cd66c88b /main/dnsmasq
parenta2a9ae6dd0a2138ccb9e1d466c233148005e72ea (diff)
downloadaports-3ea61d40651914e0706601cd8b7c05fcaafe089a.tar.bz2
aports-3ea61d40651914e0706601cd8b7c05fcaafe089a.tar.xz
main/dnsmasq: fix CVE-2019-14834
ref #11051
Diffstat (limited to 'main/dnsmasq')
-rw-r--r--main/dnsmasq/APKBUILD6
-rw-r--r--main/dnsmasq/CVE-2019-14834.patch46
2 files changed, 51 insertions, 1 deletions
diff --git a/main/dnsmasq/APKBUILD b/main/dnsmasq/APKBUILD
index a173b994c3..dacaba24e5 100644
--- a/main/dnsmasq/APKBUILD
+++ b/main/dnsmasq/APKBUILD
@@ -2,6 +2,8 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
#
# secfixes:
+# 2.80-r5:
+# - CVE-2019-14834
# 2.79-r0:
# - CVE-2017-15107
# 2.78-r0:
@@ -30,6 +32,7 @@ source="http://www.thekelleys.org.uk/dnsmasq/$pkgname-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
uncomment-conf-dir.patch
+ CVE-2019-14834.patch
"
builddir="$srcdir/$pkgname-$pkgver"
@@ -78,4 +81,5 @@ sha512sums="da50030ac96617fbb7d54d5ef02d2ed1e14ec1ebe0df49bc23a1509381bc1644cf6f
df64088b22f996ff228fce18dd05b329d9fdf7b02290bc3992546004394e662be7bc416dc718ea866341403234eb20efd5bbf1eec96df1cb6ab099ebfd3fdee4 nettle-3.5.patch
a7d64a838d10f4f69e0f2178cf66f0b3725901696e30df9e8e3e09f2afd7c86e9d95af64d2b63ef66f18b8a637397b7015573938df9ad961e2b36c391c3ac579 dnsmasq.initd
9a401bfc408bf1638645c61b8ca734bea0a09ef79fb36648ec7ef21666257234254bbe6c73c82cc23aa1779ddcdda0e6baa2c041866f16dfb9c4e0ba9133eab8 dnsmasq.confd
-01e9e235e667abda07675009fb1947547863e0bb0256393c5a415978e2a49c1007585c7f0b51e8decce79c05e6f2ced3f400b11343feaa4de9b2e524f74a1ee3 uncomment-conf-dir.patch"
+01e9e235e667abda07675009fb1947547863e0bb0256393c5a415978e2a49c1007585c7f0b51e8decce79c05e6f2ced3f400b11343feaa4de9b2e524f74a1ee3 uncomment-conf-dir.patch
+d4d11945578430da629d7a38b00eb552cd95b1c438a0b85b63ba637ed19b4283623e39692f48146132b7cb5d453eaa3c07680f1514017d8d458e347153215a9b CVE-2019-14834.patch"
diff --git a/main/dnsmasq/CVE-2019-14834.patch b/main/dnsmasq/CVE-2019-14834.patch
new file mode 100644
index 0000000000..5f60f5f1d9
--- /dev/null
+++ b/main/dnsmasq/CVE-2019-14834.patch
@@ -0,0 +1,46 @@
+From 69bc94779c2f035a9fffdb5327a54c3aeca73ed5 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Wed, 14 Aug 2019 20:44:50 +0100
+Subject: [PATCH] Fix memory leak in helper.c
+
+Thanks to Xu Mingjie <xumingjie1995@outlook.com> for spotting this.
+---
+ src/helper.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/helper.c b/src/helper.c
+index 33ba120..c392eec 100644
+--- a/src/helper.c
++++ b/src/helper.c
+@@ -80,7 +80,8 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
+ pid_t pid;
+ int i, pipefd[2];
+ struct sigaction sigact;
+-
++ unsigned char *alloc_buff = NULL;
++
+ /* create the pipe through which the main program sends us commands,
+ then fork our process. */
+ if (pipe(pipefd) == -1 || !fix_fd(pipefd[1]) || (pid = fork()) == -1)
+@@ -186,11 +187,16 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd)
+ struct script_data data;
+ char *p, *action_str, *hostname = NULL, *domain = NULL;
+ unsigned char *buf = (unsigned char *)daemon->namebuff;
+- unsigned char *end, *extradata, *alloc_buff = NULL;
++ unsigned char *end, *extradata;
+ int is6, err = 0;
+ int pipeout[2];
+
+- free(alloc_buff);
++ /* Free rarely-allocated memory from previous iteration. */
++ if (alloc_buff)
++ {
++ free(alloc_buff);
++ alloc_buff = NULL;
++ }
+
+ /* we read zero bytes when pipe closed: this is our signal to exit */
+ if (!read_write(pipefd[0], (unsigned char *)&data, sizeof(data), 1))
+--
+1.7.10.4
+