diff options
author | J0WI <J0WI@users.noreply.github.com> | 2020-05-03 00:58:47 +0200 |
---|---|---|
committer | Leo <thinkabit.ukim@gmail.com> | 2020-05-03 02:16:22 +0000 |
commit | d142f1152b4ad0cc42d6d6762f24201a9105a2b0 (patch) | |
tree | 2127594ca6c8c7feacefd313a95249b9a925ab0c /testing/fastd | |
parent | 650fa2b04f53508954e5b7a4065455807c2a04ea (diff) | |
download | alpine_aports-d142f1152b4ad0cc42d6d6762f24201a9105a2b0.tar.bz2 alpine_aports-d142f1152b4ad0cc42d6d6762f24201a9105a2b0.tar.xz alpine_aports-d142f1152b4ad0cc42d6d6762f24201a9105a2b0.zip |
testing/fastd: fix segfault and modernize
Diffstat (limited to 'testing/fastd')
-rw-r--r-- | testing/fastd/APKBUILD | 47 | ||||
-rw-r--r-- | testing/fastd/fix-segfault-with-musl.patch | 35 |
2 files changed, 59 insertions, 23 deletions
diff --git a/testing/fastd/APKBUILD b/testing/fastd/APKBUILD index dac2e79bf0..80db1445a0 100644 --- a/testing/fastd/APKBUILD +++ b/testing/fastd/APKBUILD | |||
@@ -2,38 +2,38 @@ | |||
2 | # Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr> | 2 | # Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr> |
3 | pkgname=fastd | 3 | pkgname=fastd |
4 | pkgver=18 | 4 | pkgver=18 |
5 | pkgrel=2 | 5 | pkgrel=3 |
6 | pkgdesc="Fast and Secure Tunneling Daemon" | 6 | pkgdesc="Fast and Secure Tunneling Daemon" |
7 | url="https://projects.universe-factory.net/projects/fastd" | 7 | url="https://github.com/NeoRaider/fastd/" |
8 | arch="all" | 8 | arch="all" |
9 | license="BSD" | 9 | license="BSD-2-Clause AND BSD-3-Clause" |
10 | depends="" | ||
11 | depends_dev="" | ||
12 | makedepends="$depends_dev cmake doxygen bison bsd-compat-headers | 10 | makedepends="$depends_dev cmake doxygen bison bsd-compat-headers |
13 | linux-headers libsodium-dev libcap-dev libuecc-dev json-c-dev" | 11 | linux-headers libsodium-dev libcap-dev libuecc-dev json-c-dev" |
14 | install="" | 12 | subpackages="$pkgname-doc $pkgname-openrc" |
15 | subpackages="$pkgname-doc" | 13 | source="https://git.universe-factory.net/fastd/snapshot/fastd-$pkgver.tar |
16 | source="http://git.universe-factory.net/${pkgname}/snapshot/${pkgname}-${pkgver}.tar | 14 | fix-segfault-with-musl.patch |
17 | fastd.conf | 15 | fastd.conf |
18 | fastd.initd" | 16 | fastd.initd" |
19 | 17 | ||
20 | builddir="$srcdir/${pkgname}-${pkgver}" | ||
21 | build() { | 18 | build() { |
22 | mkdir "$builddir"/build && cd "$builddir"/build | 19 | cmake -B build \ |
23 | cmake \ | 20 | -DCMAKE_BUILD_TYPE=None \ |
24 | -D CMAKE_AR=/usr/bin/ar \ | 21 | -DCMAKE_INSTALL_PREFIX=/usr \ |
25 | -D CMAKE_RANLIB=/usr/bin/ranlib \ | 22 | -DCMAKE_C_FLAGS="$CFLAGS" \ |
26 | -D CMAKE_NM=/usr/bin/nm \ | 23 | -DENABLE_SYSTEMD=OFF \ |
27 | -D CMAKE_INSTALL_PREFIX=/usr \ | 24 | -DWITH_CIPHER_AES128_CTR_NACL=OFF \ |
28 | -D ENABLE_SYSTEMD=OFF \ | 25 | . |
29 | -D WITH_CIPHER_AES128_CTR_NACL=OFF \ | 26 | make -C build |
30 | .. | 27 | } |
31 | make || return 1 | 28 | |
29 | check() { | ||
30 | # no testsuite | ||
31 | ./build/src/fastd --version | ||
32 | ./build/src/fastd --verify-config | ||
32 | } | 33 | } |
33 | 34 | ||
34 | package() { | 35 | package() { |
35 | cd "$builddir" | 36 | make -C build install DESTDIR="$pkgdir" |
36 | make -C build install DESTDIR="$pkgdir" || return 1 | ||
37 | 37 | ||
38 | install -Dm644 COPYRIGHT \ | 38 | install -Dm644 COPYRIGHT \ |
39 | "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt | 39 | "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt |
@@ -42,11 +42,12 @@ package() { | |||
42 | 42 | ||
43 | install -dm700 "$pkgdir"/etc/fastd/peers/ | 43 | install -dm700 "$pkgdir"/etc/fastd/peers/ |
44 | install -Dm600 "$srcdir"/fastd.conf \ | 44 | install -Dm600 "$srcdir"/fastd.conf \ |
45 | "$pkgdir"/etc/fastd/fastd.conf || return 1 | 45 | "$pkgdir"/etc/fastd/fastd.conf |
46 | install -Dm755 "$srcdir"/fastd.initd \ | 46 | install -Dm755 "$srcdir"/fastd.initd \ |
47 | "$pkgdir"/etc/init.d/fastd || return 1 | 47 | "$pkgdir"/etc/init.d/fastd |
48 | } | 48 | } |
49 | 49 | ||
50 | sha512sums="b732e8c083a5a35b7995f511673a3637d1f2b4893824867338dbeb06a73d8b7fd5658a7e459d1f44f1f247f06850c7720e2674c5a78a6b188334b35be352b2d0 fastd-18.tar | 50 | sha512sums="b732e8c083a5a35b7995f511673a3637d1f2b4893824867338dbeb06a73d8b7fd5658a7e459d1f44f1f247f06850c7720e2674c5a78a6b188334b35be352b2d0 fastd-18.tar |
51 | 4bb4fdf422f53562db5017f8c49ba3f95bde97a5afe8d94c8530848c054cdab05850f6a20498641a6adb1f023cd9c66a6a1a7ee183fd24898088d4cb3e8a5810 fix-segfault-with-musl.patch | ||
51 | 3e6c3a77f93a1e670e8f018833c499e8ec57b8240a6f472da03254ad9a7e6fed2c3459fa47b06c97e42afcfe6f0adfaaec39bce6b6a286a1ce7ef3585853b118 fastd.conf | 52 | 3e6c3a77f93a1e670e8f018833c499e8ec57b8240a6f472da03254ad9a7e6fed2c3459fa47b06c97e42afcfe6f0adfaaec39bce6b6a286a1ce7ef3585853b118 fastd.conf |
52 | e64b0c548cf063624ac0b632bac672c5f204586aa03aa9b06afc46f48645f1458e2400e98ee993c74aa5da3a9e86c4151e2e29c634ee59941cd81a216cea308a fastd.initd" | 53 | e64b0c548cf063624ac0b632bac672c5f204586aa03aa9b06afc46f48645f1458e2400e98ee993c74aa5da3a9e86c4151e2e29c634ee59941cd81a216cea308a fastd.initd" |
diff --git a/testing/fastd/fix-segfault-with-musl.patch b/testing/fastd/fix-segfault-with-musl.patch new file mode 100644 index 0000000000..fc822a1a8b --- /dev/null +++ b/testing/fastd/fix-segfault-with-musl.patch | |||
@@ -0,0 +1,35 @@ | |||
1 | From 7d9f90ebe9dd3a7f6af1fbb97d8cc228fb0fded4 Mon Sep 17 00:00:00 2001 | ||
2 | From: David Bauer <mail@david-bauer.net> | ||
3 | Date: Thu, 25 Jul 2019 18:51:25 +0200 | ||
4 | Subject: resolve: fix segmentation fault with musl >1.1.20 | ||
5 | |||
6 | When compiled with musl >1.1.20, fastd will crash in case it can't | ||
7 | resolve a peers hostname. This is due to a changed implementation of | ||
8 | freeaddrinfo in musl 1.1.21 onwards. | ||
9 | |||
10 | This segfault is fixed by not calling freeaddrinfo in case the supplied | ||
11 | pointer is null. | ||
12 | |||
13 | Signed-off-by: David Bauer <mail@david-bauer.net> | ||
14 | --- | ||
15 | src/resolve.c | 4 +++- | ||
16 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/src/resolve.c b/src/resolve.c | ||
19 | index 9bdfa1c..bfd2a59 100644 | ||
20 | --- a/src/resolve.c | ||
21 | +++ b/src/resolve.c | ||
22 | @@ -104,7 +104,9 @@ static void * resolve_peer(void *varg) { | ||
23 | |||
24 | fastd_async_enqueue(ASYNC_TYPE_RESOLVE_RETURN, ret, sizeof(fastd_async_resolve_return_t) + n_addr*sizeof(fastd_peer_address_t)); | ||
25 | |||
26 | - freeaddrinfo(res); | ||
27 | + if (res) | ||
28 | + freeaddrinfo(res); | ||
29 | + | ||
30 | free(arg->hostname); | ||
31 | free(arg); | ||
32 | |||
33 | -- | ||
34 | cgit v1.2.1 | ||
35 | |||