summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2015-03-17 16:11:39 +0100
committerNatanael Copa <ncopa@alpinelinux.org>2015-03-17 15:38:11 +0000
commita38ea3fa53120ebf4996e503ca02dc2111b0b31a (patch)
tree00a98367b3da94dab6772adcdb7ea7df363a1795
parent362b4cdcc095349fd7bd2397b2139da80c07b485 (diff)
downloadaports-a38ea3fa53120ebf4996e503ca02dc2111b0b31a.tar.bz2
aports-a38ea3fa53120ebf4996e503ca02dc2111b0b31a.tar.xz
main/sipsak: fix segfault with unsupported records in SRV responses
fix a segault that will happen when a DNS response contains an unsupported RR section. additional AAAA records in SRV response was enough to trigger it. This fix will sipsak simply stop parsing the DNS response when it hits unsupported RR sections. (cherry picked from commit 30ab0ecbb0385605cda2d6b3c5de7ff7c6797dd8)
-rw-r--r--main/sipsak/APKBUILD12
-rw-r--r--main/sipsak/fix-aaaa-record-segfault.patch20
2 files changed, 28 insertions, 4 deletions
diff --git a/main/sipsak/APKBUILD b/main/sipsak/APKBUILD
index 45a455d88..2a972f468 100644
--- a/main/sipsak/APKBUILD
+++ b/main/sipsak/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=sipsak
pkgver=0.9.6
-pkgrel=4
+pkgrel=5
pkgdesc="SIP swiss army knife"
url="http://sipsak.org/"
arch="all"
@@ -15,6 +15,7 @@ source="http://downloads.sourceforge.net/project/sipsak.berlios/${pkgname}-${pkg
musl-fix-strcasestr.patch
fix-off-by-one-bugs.patch
sipsak-0001-Fix-for-wrong-arity-of-callback-function-for-c-ares.patch
+ fix-aaaa-record-segfault.patch
"
_builddir="$srcdir"/$pkgname-$pkgver
@@ -50,12 +51,15 @@ package() {
md5sums="c4eb8e282902e75f4f040f09ea9d99d5 sipsak-0.9.6-1.tar.gz
fd7aa34ef656fc40b7ff186a670b4b60 musl-fix-strcasestr.patch
8fa15fbeadba6d319ae6bfbbb85b1bf7 fix-off-by-one-bugs.patch
-b4d16490aa1344301da4d3b551cee261 sipsak-0001-Fix-for-wrong-arity-of-callback-function-for-c-ares.patch"
+b4d16490aa1344301da4d3b551cee261 sipsak-0001-Fix-for-wrong-arity-of-callback-function-for-c-ares.patch
+1edea99339c3835f41db56365d4075e8 fix-aaaa-record-segfault.patch"
sha256sums="5064c56d482a080b6a4aea71821b78c21b59d44f6d1aa14c27429441917911a9 sipsak-0.9.6-1.tar.gz
98fbef70fa537a6c46f5641392b19d074ccc0d2c6e71bb903c69a7940dbab3cd musl-fix-strcasestr.patch
bc05de62df8a24492ce6d74f5ce1ec7149db5b7b56bbec941bdc6db038027fe9 fix-off-by-one-bugs.patch
-72a57b34d34e0e68c224e9dfe4e1bc1b8e4631217fb90c3b935fbd9c20f1687e sipsak-0001-Fix-for-wrong-arity-of-callback-function-for-c-ares.patch"
+72a57b34d34e0e68c224e9dfe4e1bc1b8e4631217fb90c3b935fbd9c20f1687e sipsak-0001-Fix-for-wrong-arity-of-callback-function-for-c-ares.patch
+5a5bba2fe9d069a6d91efdb7299e03d4483254e11ce43e0fc6468335c30b70e3 fix-aaaa-record-segfault.patch"
sha512sums="c2d62ddaf2ecc9616941cf002a0494d2f9c43747e6b527f8b1542e9b5ae143fc69b18fc140bd3f255896b0e8eb02f7d198cc1799a4041e2d0c95d90b653591fe sipsak-0.9.6-1.tar.gz
5a9f2679ef8b5e7a7d2db79e32c2a9ca304bd507804d86628231ad273cc08810bf3470f2b3fb5e873279d619669917f81fbf9bdfe74e83e3dfa6451aa4b62e85 musl-fix-strcasestr.patch
4f4978924482d9d8b4a1167bf968cec8c3e705ea81cd8fe4b83873f408684d43cc166d0eeeb20f7a459ff9e02ddb0cac08644d5d6f77629557d07f96f9634605 fix-off-by-one-bugs.patch
-1bfd9703029cc5e0b8bd5719d96871358c33412982a39bb1f8204ed68cd472ee3bbdee7924d4cd8f48e33299659c484709c7c347629f3771707f5e23d8eb2b2f sipsak-0001-Fix-for-wrong-arity-of-callback-function-for-c-ares.patch"
+1bfd9703029cc5e0b8bd5719d96871358c33412982a39bb1f8204ed68cd472ee3bbdee7924d4cd8f48e33299659c484709c7c347629f3771707f5e23d8eb2b2f sipsak-0001-Fix-for-wrong-arity-of-callback-function-for-c-ares.patch
+6e60e023feef1c36d4e45426568142e8aed5bcc5f91509a610dc3b0dd507677aa7a978ae2573f3f8c93f228cb415e79d92eddd6fc544897606b597d0a44aab6b fix-aaaa-record-segfault.patch"
diff --git a/main/sipsak/fix-aaaa-record-segfault.patch b/main/sipsak/fix-aaaa-record-segfault.patch
new file mode 100644
index 000000000..31f5dba37
--- /dev/null
+++ b/main/sipsak/fix-aaaa-record-segfault.patch
@@ -0,0 +1,20 @@
+--- ./helper.c.orig 2015-03-17 15:34:48.109903801 -0100
++++ ./helper.c 2015-03-17 16:08:02.954490213 -0100
+@@ -284,6 +284,8 @@
+ aptr = parse_rr(aptr, abuf, alen);
+ else
+ aptr = skip_rr(aptr, abuf, alen);
++ if (aptr == NULL)
++ return;
+ }
+ if (caadr == 0) {
+ for (i = 0; i < nscount; i++) {
+@@ -291,6 +293,8 @@
+ }
+ for (i = 0; i < arcount && caadr == 0; i++) {
+ aptr = parse_rr(aptr, abuf, alen);
++ if (aptr == NULL)
++ return;
+ }
+ }
+ }