#26 vtls: revert "receive max buffer" & remove suggests of libcurl-minimal & disable test0313
Merged 3 months ago by jamacku. Opened 3 months ago by jamacku.
rpms/ jamacku/curl revert-receive-max-buffer  into  rawhide

@@ -0,0 +1,68 @@ 

+ From 0f65eaab19624ca018d7bd5ca404618f9bfe267f Mon Sep 17 00:00:00 2001

+ From: Stefan Eissing <stefan@eissing.org>

+ Date: Thu, 1 Feb 2024 18:15:50 +0100

+ Subject: [PATCH] vtls: revert "receive max buffer" + add test case

+ 

+ - add test_05_04 for requests using http/1.0, http/1.1 and h2 against an

+   Apache resource that does an unclean TLS shutdown.

+ - revert special workarund in openssl.c for suppressing shutdown errors

+   on multiplexed connections

+ - vlts.c restore to its state before 9a90c9dd64d2f03601833a70786d485851bd1b53

+ 

+ Fixes #12885

+ Fixes #12844

+ 

+ Closes #12848

+ 

+ (cherry picked from commit ed09a99af57200643d5ae001e815eeab9ffe3f84)

+ Signed-off-by: Jan Macku <jamacku@redhat.com>

+ ---

+  lib/vtls/vtls.c | 27 ++++++---------------------

+  1 file changed, 6 insertions(+), 21 deletions(-)

+ 

+ diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c

+ index e928ba5d0..f654a9749 100644

+ --- a/lib/vtls/vtls.c

+ +++ b/lib/vtls/vtls.c

+ @@ -1715,32 +1715,17 @@ static ssize_t ssl_cf_recv(struct Curl_cfilter *cf,

+  {

+    struct cf_call_data save;

+    ssize_t nread;

+ -  size_t ntotal = 0;

+  

+    CF_DATA_SAVE(save, cf, data);

+    *err = CURLE_OK;

+ -  /* Do receive until we fill the buffer somehwhat or EGAIN, error or EOF */

+ -  while(!ntotal || (len - ntotal) > (4*1024)) {

+ +  nread = Curl_ssl->recv_plain(cf, data, buf, len, err);

+ +  if(nread > 0) {

+ +    DEBUGASSERT((size_t)nread <= len);

+ +  }

+ +  else if(nread == 0) {

+ +    /* eof */

+      *err = CURLE_OK;

+ -    nread = Curl_ssl->recv_plain(cf, data, buf + ntotal, len - ntotal, err);

+ -    if(nread < 0) {

+ -      if(*err == CURLE_AGAIN && ntotal > 0) {

+ -        /* we EAGAINed after having reed data, return the success amount */

+ -        *err = CURLE_OK;

+ -        break;

+ -      }

+ -      /* we have a an error to report */

+ -      goto out;

+ -    }

+ -    else if(nread == 0) {

+ -      /* eof */

+ -      break;

+ -    }

+ -    ntotal += (size_t)nread;

+ -    DEBUGASSERT((size_t)ntotal <= len);

+    }

+ -  nread = (ssize_t)ntotal;

+ -out:

+    CURL_TRC_CF(data, cf, "cf_recv(len=%zu) -> %zd, %d", len,

+                nread, *err);

+    CF_DATA_RESTORE(cf, save);

+ -- 

+ 2.43.0

+ 

file modified
+14 -6
@@ -1,7 +1,7 @@ 

  Summary: A utility for getting files from remote servers (FTP, HTTP, and others)

  Name: curl

  Version: 8.6.0

- Release: 5%{?dist}

+ Release: 6%{?dist}

  License: curl

  Source0: https://curl.se/download/%{name}-%{version}.tar.xz

  Source1: https://curl.se/download/%{name}-%{version}.tar.xz.asc
@@ -17,6 +17,10 @@ 

  # https://bodhi.fedoraproject.org/updates/FEDORA-2024-634a6662aa

  Patch002: 0002-curl-8.6.0-ignore-response-body-to-HEAD.patch

  

+ # revert "receive max buffer" + add test case

+ # it breaks pycurl tests suite

+ Patch003: 0003-curl-8.6.0-vtls-revert-receive-max-buffer-add-test-case.patch

+ 

  # patch making libcurl multilib ready

  Patch101: 0101-curl-7.32.0-multilib.patch

  
@@ -126,10 +130,6 @@ 

  BuildRequires: stunnel

  %endif

  

- # Suggest minimal version of libcurl to to keep number of dependencies low

- # after dropping curl-minimal.

- Suggests: libcurl-minimal

- 

  # using an older version of libcurl could result in CURLE_UNKNOWN_OPTION

  Requires: libcurl%{?_isa} >= %{version}-%{release}

  
@@ -209,9 +209,12 @@ 

  %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'

  %autosetup -p1

  

+ # temporarily disable test 0313

+ # <https://bugzilla.redhat.com/show_bug.cgi?id=2263877>

+ # <https://github.com/curl/curl/pull/11531>

  # disable test 1801

  # <https://github.com/bagder/curl/commit/21e82bd6#commitcomment-12226582>

- echo "1801" >> tests/data/DISABLED

+ echo "313\n1801" >> tests/data/DISABLED

@jamacku This command will not expand the newline. You can either write it as:

echo $'313\n1801'

... or:

printf "313\n1801\n"

  

  # test3026: avoid pthread_create() failure due to resource exhaustion on i386

  %ifarch %{ix86}
@@ -408,6 +411,11 @@ 

  %{_libdir}/libcurl.so.4.[0-9].[0-9].minimal

  

  %changelog

+ * Mon Feb 12 2024 Jan Macku <jamacku@redhat.com> - 8.6.0-6

+ - revert "receive max buffer" + add test case

+ - temporarily disable test 0313

+ - remove suggests of libcurl-minimal in curl-full

+ 

  * Mon Feb 12 2024 Jan Macku <jamacku@redhat.com> - 8.6.0-5

  - add Provides to curl-minimal

  

  • revert "receive max buffer" + add test case
    It breaks the test suite of pycurl
  • temporarily disable test 0313
    openssl issue
  • remove Suggests of libcurl-minimal in curl-full
    it might be problematic for some setups

/cc @lzaoral

1 new commit added

  • temporarily disable test 0313
3 months ago

3 new commits added

  • spec: don't suggests libcurl-minimal
  • temporarily disable test 0313
  • vtls: revert "receive max buffer" + add test case
3 months ago

Pull-Request has been merged by jamacku

3 months ago

@jamacku This command will not expand the newline. You can either write it as:

echo $'313\n1801'

... or:

printf "313\n1801\n"