main/curl: patch to fix sigpipe after init

This commit is contained in:
prspkt 2024-08-08 01:46:38 +03:00 committed by Natanael Copa
parent 6190641b35
commit aeebff52d2
2 changed files with 36 additions and 2 deletions

View File

@ -9,7 +9,7 @@
pkgname=curl
pkgver=8.9.1
pkgrel=0
pkgrel=1
pkgdesc="URL retrival utility and library"
url="https://curl.se/"
arch="all"
@ -30,7 +30,8 @@ makedepends_host="$depends_dev"
makedepends_build="groff perl"
subpackages="$pkgname-dbg $pkgname-static $pkgname-doc $pkgname-dev libcurl"
[ -z "$BOOTSTRAP" ] && subpackages="$subpackages $pkgname-zsh-completion $pkgname-fish-completion"
source="https://curl.se/download/curl-$pkgver.tar.xz"
source="https://curl.se/download/curl-$pkgver.tar.xz
fix_sigpipe.patch"
options="net" # Required for running tests
[ -n "$BOOTSTRAP" ] && options="$options !check" # remove python3 dependency
@ -244,4 +245,5 @@ libcurl() {
sha512sums="
a0fe234402875db194aad4e4208b7e67e7ffc1562622eea90948d4b9b0122c95c3dde8bbe2f7445a687cb3de7cb09f20e5819d424570442d976aa4c913227fc7 curl-8.9.1.tar.xz
f96e1f0a2c9bff99e94bdce1a2e06130bc04dd28eb50e49e6a14b2c0eecdf6d5412989edf6dd4d70414009894d8a7ce5fbed76979688b5dacc82a91643f4c5e4 fix_sigpipe.patch
"

View File

@ -0,0 +1,32 @@
From 3eec5afbd0b6377eca893c392569b2faf094d970 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Mon, 5 Aug 2024 00:17:17 +0200
Subject: [PATCH] sigpipe: init the struct so that first apply ignores
Initializes 'no_signal' to TRUE, so that a call to sigpipe_apply() after
init ignores the signal (unless CURLOPT_NOSIGNAL) is set.
I have read the existing code multiple times now and I think it gets the
initial state reversed this missing to ignore.
Regression from 17e6f06ea37136c36d27
Reported-by: Rasmus Thomsen
Fixes #14344
Closes #14390
---
lib/sigpipe.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/sigpipe.h b/lib/sigpipe.h
index b91a2f51333956..d78afd905d3414 100644
--- a/lib/sigpipe.h
+++ b/lib/sigpipe.h
@@ -39,6 +39,7 @@ struct sigpipe_ignore {
static void sigpipe_init(struct sigpipe_ignore *ig)
{
memset(ig, 0, sizeof(*ig));
+ ig->no_signal = TRUE;
}
/*