aboutsummaryrefslogtreecommitdiffstats
path: root/community/nbd
diff options
context:
space:
mode:
authorKevin Daudt <kdaudt@alpinelinux.org>2019-05-17 16:27:49 +0000
committerKevin Daudt <kdaudt@alpinelinux.org>2019-05-17 16:45:01 +0000
commit6c4dd139c5288b130554aef42e9ef5ece086c7b0 (patch)
tree541ff5db7692a22772cf7ef6b1e4a9abe06defb0 /community/nbd
parenta079a4b1f28d79c3a29894070d5c374bc2bdad64 (diff)
downloadaports-6c4dd139c5288b130554aef42e9ef5ece086c7b0.tar.bz2
aports-6c4dd139c5288b130554aef42e9ef5ece086c7b0.tar.xz
community/nbd: fix segfault during tests
nbd calls freeaddrinfo on a variable that might not have been initialized. This causes segfaults for inetd and unix mode. This was caught by the test suite. Closes GH-7913
Diffstat (limited to 'community/nbd')
-rw-r--r--community/nbd/APKBUILD6
-rw-r--r--community/nbd/fix-segfault-freeaddrinfo.patch15
2 files changed, 19 insertions, 2 deletions
diff --git a/community/nbd/APKBUILD b/community/nbd/APKBUILD
index 9644f5b832..095629d2c8 100644
--- a/community/nbd/APKBUILD
+++ b/community/nbd/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Carlo Landmeter <clandmeter@gmail.com>
pkgname=nbd
pkgver=3.18
-pkgrel=0
+pkgrel=1
pkgdesc="Tools for network block devices"
url="http://nbd.sourceforge.net"
arch="all"
@@ -11,6 +11,7 @@ makedepends="glib-dev linux-headers zlib-dev gnutls-dev libnl3-dev bash"
subpackages="$pkgname-doc $pkgname-client $pkgname-openrc"
source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.xz
nbd-server.initd
+ fix-segfault-freeaddrinfo.patch
"
builddir="$srcdir"/$pkgname-$pkgver
@@ -52,4 +53,5 @@ client() {
}
sha512sums="f9fe221b585c126efa3fb65e2344477a38f2ce42164b04d0dc4681c5a3bfd34d5d3e227454fff24eee9039853eb38a8707ea0aab0337f44906cccf379c185ce8 nbd-3.18.tar.xz
-3e71f0cd79d378abb1901038952748b548d18540aa7ebe94bcda65bc331021c1eef942c26283dbbd39471ecfa33c2c5b6165acfcf0abd7d17aed1bdcd47fea31 nbd-server.initd"
+3e71f0cd79d378abb1901038952748b548d18540aa7ebe94bcda65bc331021c1eef942c26283dbbd39471ecfa33c2c5b6165acfcf0abd7d17aed1bdcd47fea31 nbd-server.initd
+fb83a0a1f2863b147f462e27edc713134a5a4541b5807dbb320cae67f96314ceca86c40b4cc344a6f0fd42e73a8807bf238edb3ebaeb2855eb98359b905855a3 fix-segfault-freeaddrinfo.patch"
diff --git a/community/nbd/fix-segfault-freeaddrinfo.patch b/community/nbd/fix-segfault-freeaddrinfo.patch
new file mode 100644
index 0000000000..d628c144b3
--- /dev/null
+++ b/community/nbd/fix-segfault-freeaddrinfo.patch
@@ -0,0 +1,15 @@
+diff --git a/nbd-server.c b/nbd-server.c
+index b0720ea140..cf3df0462a 100644
+--- a/nbd-server.c
++++ b/nbd-server.c
+@@ -1700,7 +1700,9 @@ int set_peername(int net, CLIENT *client) {
+ break;
+ }
+
+- freeaddrinfo(ai);
++ if(ai) {
++ freeaddrinfo(ai);
++ }
+ msg(LOG_INFO, "connect from %s, assigned file is %s",
+ peername, client->exportname);
+ client->clientname=g_strdup(peername);