Subject: [alpine-aports] [PATCH v3] main/curl: fix segfault when running cargo

From: Milan P. Stanić <[email-masked]>
Date: Mon, 11 Feb 2019 22:48:42 +0100

Patch is taken from upstream at https://github.com/curl/curls
The http2 code for connection checking needs a transfer to use. Make
sure a working one is set before handler->connection_check() is called.
---
Changes v2 -> v3:
 add forgoten subject prefix

Changes v1 -> v2:
 reword commit message according to _ikke_ proposal
 add longer description of commit

 probably this will be fixed in next curl release and then this
 patch should be removed from aports

 main/curl/APKBUILD           |  8 +++++---
 main/curl/url-fix-7.64.patch | 10 ++++++++++
 2 files changed, 15 insertions(+), 3 deletions(-)
 create mode 100644 main/curl/url-fix-7.64.patch

diff --git a/main/curl/APKBUILD b/main/curl/APKBUILD
index 05d03e0e67..f73e18a1a0 100644
--- a/main/curl/APKBUILD
+++ b/main/curl/APKBUILD
@@ -4,7 +4,7 @@
 # Maintainer: Natanael Copa <[email-masked]>
 pkgname=curl
 pkgver=7.64.0
-pkgrel=0
+pkgrel=1
 pkgdesc="URL retrival utility and library"
 url="https://curl.haxx.se"
 arch="all"
@@ -14,7 +14,8 @@ depends_dev="openssl-dev libssh2-dev nghttp2-dev zlib-dev"
 checkdepends="python2"
 makedepends="$depends_dev autoconf automake groff libtool perl"
 subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev libcurl"
-source="https://curl.haxx.se/download/$pkgname-$pkgver.tar.xz"
+source="https://curl.haxx.se/download/$pkgname-$pkgver.tar.xz
+	url-fix-7.64.patch"
 options="!check" # sftp tests failing
 builddir="$srcdir/$pkgname-$pkgver"
 
@@ -115,4 +116,5 @@ libcurl() {
 	mv "$pkgdir"/usr/lib "$subpkgdir"/usr
 }
 
-sha512sums="953f1f5336ce5dfd1b9f933624432d401552d91ee02d39ecde6f023c956f99ec6aae8d7746d7c34b6eb2d6452f114e67da4e64d9c8dd90b7644b7844e7b9b423  curl-7.64.0.tar.xz"
+sha512sums="953f1f5336ce5dfd1b9f933624432d401552d91ee02d39ecde6f023c956f99ec6aae8d7746d7c34b6eb2d6452f114e67da4e64d9c8dd90b7644b7844e7b9b423  curl-7.64.0.tar.xz
+9b0cd3bfb705e804f21b3c87929ec5c3bbd6f17748e82cda75c3edbca5ea66cbcb0260c666635a2cbdaa6d4081008a9c445b4f266e9b970d3deaed21f9b352a1  url-fix-7.64.patch"
diff --git a/main/curl/url-fix-7.64.patch b/main/curl/url-fix-7.64.patch
new file mode 100644
index 0000000000..ed63f90092
--- /dev/null
+++ b/main/curl/url-fix-7.64.patch
@@ -0,0 +1,10 @@
+--- a/lib/url.c
++++ b/lib/url.c
+@@ -965,6 +965,7 @@
+       /* The protocol has a special method for checking the state of the
+          connection. Use it to check if the connection is dead. */
+       unsigned int state;
++      conn->data = data; /* use this transfer for now */
+       state = conn->handler->connection_check(conn, CONNCHECK_ISDEAD);
+       dead = (state & CONNRESULT_DEAD);
+     }
-- 
2.20.1

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---