- Add patch to fix libcurl when netrc parsing is enabled.
curl_easy_duphandle did not init netrc which broke applications such as for example git. gh#curl/curl#15496 * 0001-duphandle-also-init-netrc.patch OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/curl?expand=0&rev=383
This commit is contained in:
commit
e514e4adb9
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
222
0001-duphandle-also-init-netrc.patch
Normal file
222
0001-duphandle-also-init-netrc.patch
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
From 616224dab350adff4a19e47769369e7f6db55f8c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Stenberg <daniel@haxx.se>
|
||||||
|
Date: Thu, 7 Nov 2024 08:52:38 +0100
|
||||||
|
Subject: [PATCH] duphandle: also init netrc
|
||||||
|
|
||||||
|
The netrc init was only done in the Curl_open, meaning that a duplicated
|
||||||
|
handle would not get inited properly.
|
||||||
|
|
||||||
|
Added test 2309 to verify. It does netrc auth with a duplicated handle.
|
||||||
|
|
||||||
|
Regression from 3b43a05e000aa8f65bda513f733a
|
||||||
|
|
||||||
|
Reported-by: tranzystorekk on github
|
||||||
|
Fixes #15496
|
||||||
|
Closes #15503
|
||||||
|
|
||||||
|
(cherry picked from commit f5c616930b5cf148b1b2632da4f5963ff48bdf88)
|
||||||
|
---
|
||||||
|
lib/easy.c | 1 +
|
||||||
|
tests/data/Makefile.am | 2 +-
|
||||||
|
tests/data/test2309 | 66 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
tests/libtest/Makefile.inc | 5 ++-
|
||||||
|
tests/libtest/lib2309.c | 66 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
5 files changed, 138 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 tests/data/test2309
|
||||||
|
create mode 100644 tests/libtest/lib2309.c
|
||||||
|
|
||||||
|
diff --git a/lib/easy.c b/lib/easy.c
|
||||||
|
index d16fa8c07..ac8fab342 100644
|
||||||
|
--- a/lib/easy.c
|
||||||
|
+++ b/lib/easy.c
|
||||||
|
@@ -940,6 +940,7 @@ CURL *curl_easy_duphandle(CURL *d)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
Curl_dyn_init(&outcurl->state.headerb, CURL_MAX_HTTP_HEADER);
|
||||||
|
+ Curl_netrc_init(&outcurl->state.netrc);
|
||||||
|
|
||||||
|
/* the connection pool is setup on demand */
|
||||||
|
outcurl->state.lastconnect_id = -1;
|
||||||
|
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
|
||||||
|
index 02bf2ae25..ea5221c00 100644
|
||||||
|
--- a/tests/data/Makefile.am
|
||||||
|
+++ b/tests/data/Makefile.am
|
||||||
|
@@ -255,7 +255,7 @@ test2100 \
|
||||||
|
test2200 test2201 test2202 test2203 test2204 test2205 \
|
||||||
|
\
|
||||||
|
test2300 test2301 test2302 test2303 test2304 test2305 test2306 test2307 \
|
||||||
|
-test2308 \
|
||||||
|
+test2308 test2309 \
|
||||||
|
\
|
||||||
|
test2400 test2401 test2402 test2403 test2404 test2405 test2406 \
|
||||||
|
\
|
||||||
|
diff --git a/tests/data/test2309 b/tests/data/test2309
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..4ba78ee91
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/data/test2309
|
||||||
|
@@ -0,0 +1,66 @@
|
||||||
|
+<testcase>
|
||||||
|
+<info>
|
||||||
|
+<keywords>
|
||||||
|
+netrc
|
||||||
|
+HTTP
|
||||||
|
+</keywords>
|
||||||
|
+</info>
|
||||||
|
+#
|
||||||
|
+# Server-side
|
||||||
|
+<reply>
|
||||||
|
+<data crlf="yes" nocheck="yes">
|
||||||
|
+HTTP/1.1 200 OK
|
||||||
|
+Date: Tue, 09 Nov 2010 14:49:00 GMT
|
||||||
|
+Server: test-server/fake
|
||||||
|
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
||||||
|
+ETag: "21025-dc7-39462498"
|
||||||
|
+Accept-Ranges: bytes
|
||||||
|
+Content-Length: 6
|
||||||
|
+Connection: close
|
||||||
|
+Content-Type: text/html
|
||||||
|
+Funny-head: yesyes
|
||||||
|
+
|
||||||
|
+-foo-
|
||||||
|
+</data>
|
||||||
|
+</reply>
|
||||||
|
+
|
||||||
|
+#
|
||||||
|
+# Client-side
|
||||||
|
+<client>
|
||||||
|
+<server>
|
||||||
|
+http
|
||||||
|
+</server>
|
||||||
|
+<features>
|
||||||
|
+proxy
|
||||||
|
+</features>
|
||||||
|
+
|
||||||
|
+# Reproducing issue 15496
|
||||||
|
+<name>
|
||||||
|
+HTTP with .netrc using duped easy handle
|
||||||
|
+</name>
|
||||||
|
+<tool>
|
||||||
|
+lib%TESTNUMBER
|
||||||
|
+</tool>
|
||||||
|
+<command>
|
||||||
|
+http://github.com %LOGDIR/netrc%TESTNUMBER http://%HOSTIP:%HTTPPORT/
|
||||||
|
+</command>
|
||||||
|
+<file name="%LOGDIR/netrc%TESTNUMBER" >
|
||||||
|
+
|
||||||
|
+machine github.com
|
||||||
|
+
|
||||||
|
+login daniel
|
||||||
|
+password $y$j9T$WUVjiVvDbRAWafDLs6cab1$01NX.oaZKf5lw8MR2Nk9Yaxv4CqbE0IaDF.GpGxPul1
|
||||||
|
+</file>
|
||||||
|
+</client>
|
||||||
|
+
|
||||||
|
+<verify>
|
||||||
|
+<protocol>
|
||||||
|
+GET http://github.com/ HTTP/1.1
|
||||||
|
+Host: github.com
|
||||||
|
+Authorization: Basic %b64[daniel:$y$j9T$WUVjiVvDbRAWafDLs6cab1$01NX.oaZKf5lw8MR2Nk9Yaxv4CqbE0IaDF.GpGxPul1]b64%
|
||||||
|
+Accept: */*
|
||||||
|
+Proxy-Connection: Keep-Alive
|
||||||
|
+
|
||||||
|
+</protocol>
|
||||||
|
+</verify>
|
||||||
|
+</testcase>
|
||||||
|
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
|
||||||
|
index 339a00fc4..8f58fd642 100644
|
||||||
|
--- a/tests/libtest/Makefile.inc
|
||||||
|
+++ b/tests/libtest/Makefile.inc
|
||||||
|
@@ -77,7 +77,7 @@ LIBTESTPROGS = libauthretry libntlmconnect libprereq \
|
||||||
|
lib1945 lib1946 lib1947 lib1948 lib1955 lib1956 lib1957 lib1958 lib1959 \
|
||||||
|
lib1960 lib1964 \
|
||||||
|
lib1970 lib1971 lib1972 lib1973 lib1974 lib1975 \
|
||||||
|
- lib2301 lib2302 lib2304 lib2305 lib2306 lib2308 \
|
||||||
|
+ lib2301 lib2302 lib2304 lib2305 lib2306 lib2308 lib2309 \
|
||||||
|
lib2402 lib2404 lib2405 \
|
||||||
|
lib2502 \
|
||||||
|
lib3010 lib3025 lib3026 lib3027 \
|
||||||
|
@@ -683,6 +683,9 @@ lib2306_LDADD = $(TESTUTIL_LIBS)
|
||||||
|
lib2308_SOURCES = lib2308.c $(SUPPORTFILES)
|
||||||
|
lib2308_LDADD = $(TESTUTIL_LIBS)
|
||||||
|
|
||||||
|
+lib2309_SOURCES = lib2309.c $(SUPPORTFILES)
|
||||||
|
+lib2309_LDADD = $(TESTUTIL_LIBS)
|
||||||
|
+
|
||||||
|
lib2402_SOURCES = lib2402.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
||||||
|
lib2402_LDADD = $(TESTUTIL_LIBS)
|
||||||
|
|
||||||
|
diff --git a/tests/libtest/lib2309.c b/tests/libtest/lib2309.c
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..11f1c1fbd
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/libtest/lib2309.c
|
||||||
|
@@ -0,0 +1,66 @@
|
||||||
|
+/***************************************************************************
|
||||||
|
+ * _ _ ____ _
|
||||||
|
+ * Project ___| | | | _ \| |
|
||||||
|
+ * / __| | | | |_) | |
|
||||||
|
+ * | (__| |_| | _ <| |___
|
||||||
|
+ * \___|\___/|_| \_\_____|
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
|
+ *
|
||||||
|
+ * This software is licensed as described in the file COPYING, which
|
||||||
|
+ * you should have received as part of this distribution. The terms
|
||||||
|
+ * are also available at https://curl.se/docs/copyright.html.
|
||||||
|
+ *
|
||||||
|
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||||
|
+ * copies of the Software, and permit persons to whom the Software is
|
||||||
|
+ * furnished to do so, under the terms of the COPYING file.
|
||||||
|
+ *
|
||||||
|
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
+ * KIND, either express or implied.
|
||||||
|
+ *
|
||||||
|
+ * SPDX-License-Identifier: curl
|
||||||
|
+ *
|
||||||
|
+ ***************************************************************************/
|
||||||
|
+
|
||||||
|
+#include "test.h"
|
||||||
|
+#include "testtrace.h"
|
||||||
|
+
|
||||||
|
+#include <curl/curl.h>
|
||||||
|
+
|
||||||
|
+static size_t cb_ignore(char *buffer, size_t size, size_t nmemb, void *userp)
|
||||||
|
+{
|
||||||
|
+ (void)buffer;
|
||||||
|
+ (void)size;
|
||||||
|
+ (void)nmemb;
|
||||||
|
+ (void)userp;
|
||||||
|
+ return CURL_WRITEFUNC_ERROR;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+CURLcode test(char *URL)
|
||||||
|
+{
|
||||||
|
+ CURL *curl;
|
||||||
|
+ CURL *curldupe;
|
||||||
|
+ CURLcode res = CURLE_OK;
|
||||||
|
+
|
||||||
|
+ global_init(CURL_GLOBAL_ALL);
|
||||||
|
+ curl = curl_easy_init();
|
||||||
|
+ if(curl) {
|
||||||
|
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, cb_ignore);
|
||||||
|
+ curl_easy_setopt(curl, CURLOPT_URL, URL);
|
||||||
|
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||||||
|
+ curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg3);
|
||||||
|
+ curl_easy_setopt(curl, CURLOPT_NETRC, (long)CURL_NETRC_REQUIRED);
|
||||||
|
+ curl_easy_setopt(curl, CURLOPT_NETRC_FILE, libtest_arg2);
|
||||||
|
+
|
||||||
|
+ curldupe = curl_easy_duphandle(curl);
|
||||||
|
+ if(curldupe) {
|
||||||
|
+ res = curl_easy_perform(curldupe);
|
||||||
|
+ printf("Returned %d, should be %d.\n", res, CURLE_WRITE_ERROR);
|
||||||
|
+ fflush(stdout);
|
||||||
|
+ curl_easy_cleanup(curldupe);
|
||||||
|
+ }
|
||||||
|
+ curl_easy_cleanup(curl);
|
||||||
|
+ }
|
||||||
|
+ curl_global_cleanup();
|
||||||
|
+ return CURLE_OK;
|
||||||
|
+}
|
||||||
|
--
|
||||||
|
2.47.0
|
||||||
|
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>mini</package>
|
||||||
|
</multibuild>
|
6
baselibs.conf
Normal file
6
baselibs.conf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
libcurl4
|
||||||
|
obsoletes "curl-<targettype> <= <version>"
|
||||||
|
provides "curl-<targettype> = <version>"
|
||||||
|
libcurl-devel
|
||||||
|
requires -curl-<targettype>
|
||||||
|
requires "libcurl4-<targettype> = <version>"
|
3
curl-8.10.0.tar.xz
Normal file
3
curl-8.10.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e6b142f0e85e954759d37e26a3627e2278137595be80e3a860c4353e4335e5a0
|
||||||
|
size 2729448
|
11
curl-8.10.0.tar.xz.asc
Normal file
11
curl-8.10.0.tar.xz.asc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAmbhLPgACgkQXMkI/bce
|
||||||
|
EsKvcAf/X90bZOG4ufZdq0z7l1i++7tLMG9zd8MjMX14XEBlHsTSqhgqu18i/FDY
|
||||||
|
sIlK/6fQH5RJbbP9LtX68ptDnzZ31SmIpOWngyadkJTQ1n6oTa1jSUf469ALWHmX
|
||||||
|
nwEPvgX8YXdVDrNpVbAUy3EElKoSH/9JSyXGmpi5whaHb1jzTyUAcR2QbKyxwZi3
|
||||||
|
Md+XKAbdrhXBfDicoLbWN2N8NlzyV5rt78DMh1UZPOspWo8fSMUIZeB6uSoi0Ey0
|
||||||
|
mY1Vv+b4L0dricODFSprfN9BZNe5lv9Ciit4GJmMf28k896Zw4nV+yngUhEs9lfm
|
||||||
|
8tmBTI2oX6kPAULU+xZ2iR61MuW5ZA==
|
||||||
|
=S6zn
|
||||||
|
-----END PGP SIGNATURE-----
|
BIN
curl-8.11.0.tar.xz
(Stored with Git LFS)
Normal file
BIN
curl-8.11.0.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
11
curl-8.11.0.tar.xz.asc
Normal file
11
curl-8.11.0.tar.xz.asc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAmcrFoYACgkQXMkI/bce
|
||||||
|
EsIHCAf/fcpnxxtl7XTgSXF3V2tntKZJskiiTuXsJtBCJoDWiOOjrM3gnafXC3Bt
|
||||||
|
CcncdGHIubKuUTc+JeuQowr6e+oXWPX5k45SF35U9n1EvWgF/s8uxAF8vJdDQme9
|
||||||
|
z30M6UjMkEB7tbADUt1Q7Dyh8ZWWsFC5emekYnMQVDvzmad76Z3o4ZeQAly7xUhd
|
||||||
|
V++5Il3Ql44nyMeTDTlHOuOc3jiA5rCmoLr4mMbRqAO8wF+Y2KCDYd5BaNvXZOln
|
||||||
|
snEM496m3p0S1sliiEnRwDeccepUpkAyHPQgESS/ATCIvFZb4/MDrLSc5HSr5K+8
|
||||||
|
MNYxBV03wmfR5QUqihbH8KXZKpYDnw==
|
||||||
|
=9DLI
|
||||||
|
-----END PGP SIGNATURE-----
|
3
curl-8.8.0.tar.xz
Normal file
3
curl-8.8.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:0f58bb95fc330c8a46eeb3df5701b0d90c9d9bfcc42bd1cd08791d12551d4400
|
||||||
|
size 2748860
|
11
curl-8.8.0.tar.xz.asc
Normal file
11
curl-8.8.0.tar.xz.asc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAmZNiQcACgkQXMkI/bce
|
||||||
|
EsKpxwf/XuUnVCDn7fC0t7I07jjovBc+CTgwMpgvXBHw2CdURhpdCLF3AHARcPLA
|
||||||
|
zwf8FhM2FB+K7A7JgMy9QZSDNfKkCLYMILqsn9U3sIOzGIinJJq9d89W8CuVhcEK
|
||||||
|
x4a0c4g0jax8p3EVHN5tio7EZTrfUHvnXY+PLUMx52v/0Q1OWagVYwkg4qTb5fHL
|
||||||
|
IrfXCQkg8b4kxw5p9d7n0OvyN6W2VdvIlX7ZxXPmjX9tQT6LK7KZj49P09oRzxsM
|
||||||
|
1UNF0A5YiNgsONJ4l1/tOQub9uE6pu+fhJ97XLzH1K1d1ha98dIE/veudCaqkZDq
|
||||||
|
CfvkeuN68zsv85MdvD6S16RC2JhhCA==
|
||||||
|
=ONcR
|
||||||
|
-----END PGP SIGNATURE-----
|
BIN
curl-8.9.1.tar.xz
(Stored with Git LFS)
Normal file
BIN
curl-8.9.1.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
11
curl-8.9.1.tar.xz.asc
Normal file
11
curl-8.9.1.tar.xz.asc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAmap30kACgkQXMkI/bce
|
||||||
|
EsKX+wf/brccw5rGTAbmjj7WGBfbAmwrSsDexTXRiEBXT/+qhkWIplN6wdtsZ86I
|
||||||
|
tUraaapoyvRKLa3Wxlv9fSF/xXji+5lhO/W9pfWxwZNeSZFiOgKcK/Li4Fx0c7t4
|
||||||
|
WpxkAbRvbJreA40BR32qSgnNNjKU5QX/ivf67B1EFL71kgsCW/QczB6mcuxszlkN
|
||||||
|
ro39Jb8hDtnAD3hHXrTEaW3lOEgf/Jo/a1Zii3+W3OkW+uZHwzUoqe+HLGHYM2vW
|
||||||
|
Q3hBVQaEWmNIwArA73s/kOiFATLthUTvSJO56ebLQJFHJf61cwqSsg2o07i5SqEc
|
||||||
|
QlKzV/h7ydbBWdHiSTpCMxue7tLUZw==
|
||||||
|
=EiUG
|
||||||
|
-----END PGP SIGNATURE-----
|
20
curl-disabled-redirect-protocol-message.patch
Normal file
20
curl-disabled-redirect-protocol-message.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Index: curl-7.82.0/lib/url.c
|
||||||
|
===================================================================
|
||||||
|
--- curl-7.82.0.orig/lib/url.c
|
||||||
|
+++ curl-7.82.0/lib/url.c
|
||||||
|
@@ -1832,9 +1832,13 @@ static CURLcode findprotocol(struct Curl
|
||||||
|
/* it is allowed for "normal" request, now do an extra check if this is
|
||||||
|
the result of a redirect */
|
||||||
|
if(data->state.this_is_a_follow &&
|
||||||
|
- !(data->set.redir_protocols & p->protocol))
|
||||||
|
+ !(data->set.redir_protocols & p->protocol)) {
|
||||||
|
/* nope, get out */
|
||||||
|
- ;
|
||||||
|
+ failf(data, "Redirect to protocol \"%s\" not supported or disabled in "
|
||||||
|
+ LIBCURL_NAME, protostr);
|
||||||
|
+
|
||||||
|
+ return CURLE_UNSUPPORTED_PROTOCOL;
|
||||||
|
+ }
|
||||||
|
else {
|
||||||
|
/* Perform setup complement if some. */
|
||||||
|
conn->handler = conn->given = p;
|
26
curl-make-install-curl-config.patch
Normal file
26
curl-make-install-curl-config.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 4cc5657247183a0bc3b0969beeaea9acddb09d22 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Stenberg <daniel@haxx.se>
|
||||||
|
Date: Wed, 22 May 2024 08:43:43 +0200
|
||||||
|
Subject: [PATCH] docs/Makefile.am: make curl-config.1 install
|
||||||
|
|
||||||
|
on "make install" like it should
|
||||||
|
|
||||||
|
Follow-up to 60971d665b9b1df87082
|
||||||
|
|
||||||
|
Closes #13741
|
||||||
|
---
|
||||||
|
docs/Makefile.am | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/docs/Makefile.am b/docs/Makefile.am
|
||||||
|
index 83f5b0c461cc0f..e9ef6284860555 100644
|
||||||
|
--- a/docs/Makefile.am
|
||||||
|
+++ b/docs/Makefile.am
|
||||||
|
@@ -28,6 +28,7 @@ if BUILD_DOCS
|
||||||
|
# if we disable man page building, ignore these
|
||||||
|
MK_CA_DOCS = mk-ca-bundle.1
|
||||||
|
CURLCONF_DOCS = curl-config.1
|
||||||
|
+man_MANS = curl-config.1
|
||||||
|
endif
|
||||||
|
|
||||||
|
CURLPAGES = curl-config.md mk-ca-bundle.md
|
41
curl-secure-getenv.patch
Normal file
41
curl-secure-getenv.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Index: curl-8.11.0/lib/getenv.c
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.11.0.orig/lib/getenv.c
|
||||||
|
+++ curl-8.11.0/lib/getenv.c
|
||||||
|
@@ -29,6 +29,14 @@
|
||||||
|
|
||||||
|
#include "memdebug.h"
|
||||||
|
|
||||||
|
+#ifndef HAVE_SECURE_GETENV
|
||||||
|
+# ifdef HAVE___SECURE_GETENV
|
||||||
|
+# define secure_getenv __secure_getenv
|
||||||
|
+# else
|
||||||
|
+# error neither secure_getenv nor __secure_getenv is available
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
static char *GetEnv(const char *variable)
|
||||||
|
{
|
||||||
|
#if defined(_WIN32_WCE) || defined(CURL_WINDOWS_UWP) || \
|
||||||
|
@@ -69,7 +77,7 @@ static char *GetEnv(const char *variable
|
||||||
|
/* else rc is bytes needed, try again */
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
- char *env = getenv(variable);
|
||||||
|
+ char *env = secure_getenv(variable);
|
||||||
|
return (env && env[0]) ? strdup(env) : NULL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
Index: curl-8.11.0/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.11.0.orig/configure.ac
|
||||||
|
+++ curl-8.11.0/configure.ac
|
||||||
|
@@ -5370,6 +5370,8 @@ fi
|
||||||
|
|
||||||
|
CURL_PREPARE_CONFIGUREHELP_PM
|
||||||
|
|
||||||
|
+AC_CHECK_FUNCS([__secure_getenv secure_getenv])
|
||||||
|
+
|
||||||
|
AC_CONFIG_FILES([\
|
||||||
|
Makefile \
|
||||||
|
docs/Makefile \
|
32
curl-sigpipe.patch
Normal file
32
curl-sigpipe.patch
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
6535
curl.changes
Normal file
6535
curl.changes
Normal file
File diff suppressed because it is too large
Load Diff
77
curl.keyring
Normal file
77
curl.keyring
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v2
|
||||||
|
|
||||||
|
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
|
||||||
|
j/qx4ytjt5uxt6Jm6IXV9cry8i6x
|
||||||
|
=Phs/
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
260
curl.spec
Normal file
260
curl.spec
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
#
|
||||||
|
# spec file for package curl
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%bcond_without testsuite
|
||||||
|
# need ssl always for python-pycurl
|
||||||
|
%bcond_without openssl
|
||||||
|
%define target @BUILD_FLAVOR@%{nil}
|
||||||
|
%if "%{target}" == "mini"
|
||||||
|
%bcond_without mini
|
||||||
|
%global psuffix -mini
|
||||||
|
%else
|
||||||
|
%bcond_with mini
|
||||||
|
%global psuffix %{nil}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Name: curl%{?psuffix}
|
||||||
|
Version: 8.11.0
|
||||||
|
Release: 0
|
||||||
|
Summary: A Tool for Transferring Data from URLs
|
||||||
|
License: curl
|
||||||
|
URL: https://curl.se
|
||||||
|
Source: https://curl.se/download/curl-%{version}.tar.xz
|
||||||
|
Source2: https://curl.se/download/curl-%{version}.tar.xz.asc
|
||||||
|
Source3: baselibs.conf
|
||||||
|
Source4: https://daniel.haxx.se/mykey.asc#/curl.keyring
|
||||||
|
Patch0: libcurl-ocloexec.patch
|
||||||
|
Patch1: dont-mess-with-rpmoptflags.patch
|
||||||
|
Patch2: curl-secure-getenv.patch
|
||||||
|
#PATCH-FIX-OPENSUSE bsc#1076446 protocol redirection not supported or disabled
|
||||||
|
Patch3: curl-disabled-redirect-protocol-message.patch
|
||||||
|
#PATCH-FIX-UPSTREAM fix parsingg of netrc in libcurl ghub#curl/curl#15496
|
||||||
|
Patch4: 0001-duphandle-also-init-netrc.patch
|
||||||
|
BuildRequires: groff
|
||||||
|
BuildRequires: libtool
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: pkgconfig(libidn2)
|
||||||
|
# Disable metalink [bsc#1188218, CVE-2021-22923][bsc#1188217, CVE-2021-22922]
|
||||||
|
# BuildRequires: pkgconfig(libmetalink)
|
||||||
|
BuildRequires: pkgconfig(libnghttp2)
|
||||||
|
BuildRequires: pkgconfig(libpsl)
|
||||||
|
BuildRequires: pkgconfig(libzstd)
|
||||||
|
BuildRequires: pkgconfig(zlib)
|
||||||
|
Requires: libcurl4 = %{version}
|
||||||
|
%if %{with openssl}
|
||||||
|
BuildRequires: pkgconfig(libssl)
|
||||||
|
%endif
|
||||||
|
%if !%{with mini}
|
||||||
|
BuildRequires: openldap2-devel
|
||||||
|
BuildRequires: pkgconfig(krb5)
|
||||||
|
BuildRequires: pkgconfig(libbrotlidec)
|
||||||
|
BuildRequires: pkgconfig(libssh)
|
||||||
|
%endif
|
||||||
|
%if 0%{?_with_stunnel:1}
|
||||||
|
# used by the testsuite
|
||||||
|
BuildRequires: stunnel
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
Curl is a client to get documents and files from or send documents to a
|
||||||
|
server using any of the supported protocols (HTTP, HTTPS, FTP, FTPS,
|
||||||
|
TFTP, DICT, TELNET, LDAP, or FILE). The command is designed to work
|
||||||
|
without user interaction or any kind of interactivity.
|
||||||
|
|
||||||
|
%package -n libcurl%{?psuffix}4
|
||||||
|
Summary: Library for transferring data from URLs
|
||||||
|
%if %{with mini}
|
||||||
|
Provides: libcurl4 = %{version}
|
||||||
|
%else
|
||||||
|
Obsoletes: libcurl-mini4 <= %{version}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n libcurl%{?psuffix}4
|
||||||
|
The cURL shared library for accessing data using different
|
||||||
|
network protocols.
|
||||||
|
|
||||||
|
%if !%{with mini}
|
||||||
|
%package -n libcurl-devel
|
||||||
|
Summary: Development files for the curl library
|
||||||
|
Requires: glibc-devel
|
||||||
|
Requires: libcurl4 = %{version}
|
||||||
|
Provides: curl-devel = %{version}
|
||||||
|
Obsoletes: curl-devel < %{version}
|
||||||
|
|
||||||
|
%description -n libcurl-devel
|
||||||
|
Curl is a client to get documents and files from or send documents to a
|
||||||
|
server using any of the supported protocols (HTTP, HTTPS, FTP, GOPHER,
|
||||||
|
DICT, TELNET, LDAP, or FILE). The command is designed to work without
|
||||||
|
user interaction or any kind of interactivity.
|
||||||
|
|
||||||
|
%package -n libcurl-devel-doc
|
||||||
|
Summary: Manual pages for libcurl
|
||||||
|
Provides: libcurl-devel:%{_mandir}/man1/curl-config.1%{?ext_man}
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description -n libcurl-devel-doc
|
||||||
|
Manual pages for the libcurl C API.
|
||||||
|
|
||||||
|
%package fish-completion
|
||||||
|
Summary: Fish completion for curl
|
||||||
|
Group: System/Shells
|
||||||
|
Requires: fish
|
||||||
|
Supplements: (curl and fish)
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description fish-completion
|
||||||
|
Fish command line completion support for %name.
|
||||||
|
|
||||||
|
%package zsh-completion
|
||||||
|
Summary: Zsh Completion for %name
|
||||||
|
Group: System/Shells
|
||||||
|
Requires: zsh
|
||||||
|
Supplements: (curl and zsh)
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description zsh-completion
|
||||||
|
ZSH command line completion support for %name.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n curl-%{version}
|
||||||
|
|
||||||
|
%build
|
||||||
|
# curl complains if macro definition is contained in CFLAGS
|
||||||
|
# see m4/xc-val-flgs.m4
|
||||||
|
CPPFLAGS="-D_FORTIFY_SOURCE=2"
|
||||||
|
CFLAGS=$(echo "%{optflags}" | sed -e 's/-D_FORTIFY_SOURCE=2//')
|
||||||
|
export CPPFLAGS
|
||||||
|
export CFLAGS="$CFLAGS -fPIE"
|
||||||
|
export LDFLAGS="$LDFLAGS -Wl,-z,defs,-z,now,-z,relro -pie"
|
||||||
|
autoreconf -fiv
|
||||||
|
# local hack to make curl-config --libs stop printing libraries it depends on
|
||||||
|
# (currently, libtool sets link_all_deplibs=(yes|unknown) everywhere,
|
||||||
|
# will hopefully change in the future)
|
||||||
|
sed -i 's/\(link_all_deplibs=\)unknown/\1no/' configure
|
||||||
|
|
||||||
|
%configure \
|
||||||
|
--enable-hsts \
|
||||||
|
--enable-ipv6 \
|
||||||
|
%if %{with openssl}
|
||||||
|
--with-openssl \
|
||||||
|
--with-ca-fallback \
|
||||||
|
--without-ca-path \
|
||||||
|
--without-ca-bundle \
|
||||||
|
%else
|
||||||
|
--without-openssl \
|
||||||
|
%endif
|
||||||
|
--with-libidn2 \
|
||||||
|
--with-nghttp2 \
|
||||||
|
--enable-docs \
|
||||||
|
%if %{with mini}
|
||||||
|
--disable-dict \
|
||||||
|
--disable-ftp \
|
||||||
|
--disable-gopher \
|
||||||
|
--disable-imap \
|
||||||
|
--disable-mqtt \
|
||||||
|
--disable-ntlm \
|
||||||
|
--disable-ntlm-wb \
|
||||||
|
--disable-pop3 \
|
||||||
|
--disable-rtsp \
|
||||||
|
--disable-smtp \
|
||||||
|
--disable-telnet \
|
||||||
|
--disable-tftp \
|
||||||
|
--disable-tls-srp \
|
||||||
|
--disable-websockets \
|
||||||
|
--without-brotli \
|
||||||
|
--without-libssh \
|
||||||
|
%else
|
||||||
|
--with-gssapi=$(krb5-config --prefix) \
|
||||||
|
--with-brotli \
|
||||||
|
--with-libssh \
|
||||||
|
%endif
|
||||||
|
--enable-symbol-hiding \
|
||||||
|
--disable-static \
|
||||||
|
--enable-threaded-resolver \
|
||||||
|
--with-zsh-functions-dir=%{_datadir}/zsh/site-functions/ \
|
||||||
|
--with-fish-functions-dir=%{_datadir}/fish/vendor_completions.d
|
||||||
|
|
||||||
|
# if this fails, the above sed hack did not work
|
||||||
|
./libtool --config | grep -q link_all_deplibs=no
|
||||||
|
# enable-hidden-symbols needs gcc4 and causes that curl exports only its API
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%if %{with testsuite}
|
||||||
|
%check
|
||||||
|
pushd tests
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
find -type f -name "*.pl" -exec sed -i 's|#!.*/usr/bin/env perl|#!/usr/bin/perl|' "{}" +
|
||||||
|
find -type f -name "*.py" -exec sed -i 's|#!.*/usr/bin/env python.*|#!/usr/bin/python3|' "{}" +
|
||||||
|
|
||||||
|
perl ./runtests.pl -a -v -p '!flaky' || exit
|
||||||
|
popd
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
rm -f %{buildroot}%{_libdir}/libcurl.la
|
||||||
|
%if %{with mini}
|
||||||
|
rm -rv %{buildroot}%{_includedir}/curl %{buildroot}/%{_libdir}/pkgconfig %{buildroot}%{_datadir}
|
||||||
|
rm -v %{buildroot}%{_bindir}/curl %{buildroot}%{_bindir}/curl-config %{buildroot}%{_libdir}/libcurl.so
|
||||||
|
%else
|
||||||
|
install -Dm 0644 docs/libcurl/libcurl.m4 %{buildroot}%{_datadir}/aclocal/libcurl.m4
|
||||||
|
pushd scripts
|
||||||
|
%make_install
|
||||||
|
popd
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ldconfig_scriptlets -n libcurl%{?psuffix}4
|
||||||
|
|
||||||
|
%files -n libcurl%{?psuffix}4
|
||||||
|
%license COPYING
|
||||||
|
%{_libdir}/libcurl.so.4*
|
||||||
|
|
||||||
|
%if !%{with mini}
|
||||||
|
%files
|
||||||
|
%doc README RELEASE-NOTES CHANGES.md
|
||||||
|
%doc docs/{BUGS.md,FAQ,FEATURES.md,TODO,TheArtOfHttpScripting.md}
|
||||||
|
%{_bindir}/curl
|
||||||
|
%{_mandir}/man1/curl.1%{?ext_man}
|
||||||
|
|
||||||
|
%files zsh-completion
|
||||||
|
%dir %{_datadir}/zsh
|
||||||
|
%dir %{_datadir}/zsh/site-functions
|
||||||
|
%{_datadir}/zsh/site-functions/_curl
|
||||||
|
|
||||||
|
%files fish-completion
|
||||||
|
%dir %{_datadir}/fish/
|
||||||
|
%dir %{_datadir}/fish/vendor_completions.d/
|
||||||
|
%{_datadir}/fish/vendor_completions.d/curl.fish
|
||||||
|
|
||||||
|
%files -n libcurl-devel
|
||||||
|
%{_bindir}/curl-config
|
||||||
|
%{_includedir}/curl
|
||||||
|
%dir %{_datadir}/aclocal/
|
||||||
|
%{_datadir}/aclocal/libcurl.m4
|
||||||
|
%{_libdir}/libcurl.so
|
||||||
|
%{_libdir}/pkgconfig/libcurl.pc
|
||||||
|
|
||||||
|
%files -n libcurl-devel-doc
|
||||||
|
%{_mandir}/man1/curl-config.1%{?ext_man}
|
||||||
|
%{_mandir}/man3/*
|
||||||
|
%doc docs/libcurl/symbols-in-versions
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
15
dont-mess-with-rpmoptflags.patch
Normal file
15
dont-mess-with-rpmoptflags.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Index: curl-8.6.0/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.6.0.orig/configure.ac
|
||||||
|
+++ curl-8.6.0/configure.ac
|
||||||
|
@@ -506,10 +506,6 @@ dnl ************************************
|
||||||
|
|
||||||
|
CURL_CHECK_COMPILER
|
||||||
|
CURL_CHECK_NATIVE_WINDOWS
|
||||||
|
-CURL_SET_COMPILER_BASIC_OPTS
|
||||||
|
-CURL_SET_COMPILER_DEBUG_OPTS
|
||||||
|
-CURL_SET_COMPILER_OPTIMIZE_OPTS
|
||||||
|
-CURL_SET_COMPILER_WARNING_OPTS
|
||||||
|
|
||||||
|
if test "$compiler_id" = "INTEL_UNIX_C"; then
|
||||||
|
#
|
93
libcurl-ocloexec.patch
Normal file
93
libcurl-ocloexec.patch
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
Open library file descriptors with O_CLOEXEC
|
||||||
|
This patch is non-portable, it needs linux 2.6.23 and glibc 2.7
|
||||||
|
or later, different combinations (old linux, new glibc and vice-versa)
|
||||||
|
will result in a crash.
|
||||||
|
|
||||||
|
To make it portable you have to test O_CLOEXEC support at *runtime*
|
||||||
|
compile time is not enough.
|
||||||
|
|
||||||
|
|
||||||
|
Index: curl-8.9.0/lib/file.c
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.9.0.orig/lib/file.c
|
||||||
|
+++ curl-8.9.0/lib/file.c
|
||||||
|
@@ -242,7 +242,7 @@ static CURLcode file_connect(struct Curl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
- fd = open_readonly(real_path, O_RDONLY);
|
||||||
|
+ fd = open_readonly(real_path, O_RDONLY|O_CLOEXEC);
|
||||||
|
file->path = real_path;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
@@ -329,7 +329,7 @@ static CURLcode file_upload(struct Curl_
|
||||||
|
else
|
||||||
|
mode = MODE_DEFAULT|O_TRUNC;
|
||||||
|
|
||||||
|
- fd = open(file->path, mode, data->set.new_file_perms);
|
||||||
|
+ fd = open(file->path, mode|O_CLOEXEC, data->set.new_file_perms);
|
||||||
|
if(fd < 0) {
|
||||||
|
failf(data, "cannot open %s for writing", file->path);
|
||||||
|
return CURLE_WRITE_ERROR;
|
||||||
|
Index: curl-8.9.0/lib/if2ip.c
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.9.0.orig/lib/if2ip.c
|
||||||
|
+++ curl-8.9.0/lib/if2ip.c
|
||||||
|
@@ -208,7 +208,7 @@ if2ip_result_t Curl_if2ip(int af,
|
||||||
|
if(len >= sizeof(req.ifr_name))
|
||||||
|
return IF2IP_NOT_FOUND;
|
||||||
|
|
||||||
|
- dummy = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
|
+ dummy = socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, 0);
|
||||||
|
if(CURL_SOCKET_BAD == dummy)
|
||||||
|
return IF2IP_NOT_FOUND;
|
||||||
|
|
||||||
|
Index: curl-8.9.0/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.9.0.orig/configure.ac
|
||||||
|
+++ curl-8.9.0/configure.ac
|
||||||
|
@@ -441,6 +441,8 @@ AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-m
|
||||||
|
# Silence warning: ar: 'u' modifier ignored since 'D' is the default
|
||||||
|
AC_SUBST(AR_FLAGS, [cr])
|
||||||
|
|
||||||
|
+AC_USE_SYSTEM_EXTENSIONS
|
||||||
|
+
|
||||||
|
dnl This defines _ALL_SOURCE for AIX
|
||||||
|
CURL_CHECK_AIX_ALL_SOURCE
|
||||||
|
|
||||||
|
Index: curl-8.9.0/lib/hostip.c
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.9.0.orig/lib/hostip.c
|
||||||
|
+++ curl-8.9.0/lib/hostip.c
|
||||||
|
@@ -44,6 +44,7 @@
|
||||||
|
#include <setjmp.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
+#include <fcntl.h>
|
||||||
|
#include "urldata.h"
|
||||||
|
#include "sendf.h"
|
||||||
|
#include "hostip.h"
|
||||||
|
@@ -616,7 +617,7 @@ bool Curl_ipv6works(struct Curl_easy *da
|
||||||
|
else {
|
||||||
|
int ipv6_works = -1;
|
||||||
|
/* probe to see if we have a working IPv6 stack */
|
||||||
|
- curl_socket_t s = socket(PF_INET6, SOCK_DGRAM, 0);
|
||||||
|
+ curl_socket_t s = socket(PF_INET6, SOCK_DGRAM|SOCK_CLOEXEC, 0);
|
||||||
|
if(s == CURL_SOCKET_BAD)
|
||||||
|
/* an IPv6 address was requested but we cannot get/use one */
|
||||||
|
ipv6_works = 0;
|
||||||
|
Index: curl-8.9.0/lib/cf-socket.c
|
||||||
|
===================================================================
|
||||||
|
--- curl-8.9.0.orig/lib/cf-socket.c
|
||||||
|
+++ curl-8.9.0/lib/cf-socket.c
|
||||||
|
@@ -360,7 +360,9 @@ static CURLcode socket_open(struct Curl_
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* opensocket callback not set, so simply create the socket now */
|
||||||
|
- *sockfd = socket(addr->family, addr->socktype, addr->protocol);
|
||||||
|
+ *sockfd = socket(addr->family,
|
||||||
|
+ addr->socktype|SOCK_CLOEXEC,
|
||||||
|
+ addr->protocol);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(*sockfd == CURL_SOCKET_BAD)
|
Loading…
x
Reference in New Issue
Block a user