• Bug#1069292: libcurl4t64: regression: CURLINFO_REQUEST_SIZE returns 0

    From Antonio Terceiro@21:1/5 to All on Fri Apr 19 15:30:02 2024
    --ji4+VmRTS2Z5zr+4
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: inline

    Package: libcurl4t64
    Version: 8.7.1-2
    Severity: important
    Tags: upstream patch
    Forwarded: https://github.com/curl/curl/issues/13269

    Dear Maintainer,

    curl 8.7 no longer fills in the request_size field. This has been
    reported upstream in the following issue:

    https://github.com/curl/curl/issues/13269

    This causes at least ruby-ethon, a Ruby library that wraps libcurl via
    FFI, to fail its test suite (after fixing it to not hardcode libcurl4 as
    a dependency), like this:

    ----------------8<----------------8<----------------8<----------------- Failures:

    1) Ethon::Easy::Informations#request_size returns 53
    Failure/Error: expect(easy.request_size).to eq(53)

    expected: 53
    got: 0

    (compared using ==)
    # ./spec/ethon/easy/informations_spec.rb:92:in `block (3 levels) in <top (required)>'

    Finished in 5.06 seconds (files took 0.80166 seconds to load)
    578 examples, 1 failure, 2 pending

    Failed examples:

    rspec ./spec/ethon/easy/informations_spec.rb:91 # Ethon::Easy::Informations#request_size returns 53
    ----------------8<----------------8<----------------8<-----------------

    (the same test suite passes just fine against libcurl4 8.6.0-3 from testing.)

    I have tested the patch in https://github.com/curl/curl/pull/13275 and
    it indeed fixes this. I'm including a patch against the Debian package
    in the archive that includes this patch in debian/patches, with the
    fuzzyness already removed, and updates debian/patches/series accordingly.

    -- System Information:
    Debian Release: trixie/sid
    APT prefers testing
    APT policy: (900, 'testing'), (500, 'stable-security'), (500, 'unstable'), (1, 'experimental')
    Architecture: arm64 (aarch64)

    Kernel: Linux 6.6.15-arm64 (SMP w/32 CPU threads)
    Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8), LANGUAGE not set
    Shell: /bin/sh linked to /usr/bin/dash
    Init: systemd (via /run/systemd/system)
    LSM: AppArmor: enabled

    Versions of packages libcurl4t64 depends on:
    ii libbrotli1 1.1.0-2+b3
    ii libc6 2.37-15
    ii libgssapi-krb5-2 1.20.1-5+b1
    ii libidn2-0 2.3.7-2
    ii libldap-2.5-0 2.5.13+dfsg-5+b3
    ii libnghttp2-14 1.59.0-1
    pn libpsl5t64 <none>
    ii librtmp1 2.4+20151223.gitfa8646d.1-2+b2
    pn libssh2-1t64 <none>
    pn libssl3t64 <none>
    ii libzstd1 1.5.5+dfsg2-2
    ii zlib1g 1:1.3.dfsg-3+b1

    Versions of packages libcurl4t64 recommends:
    ii ca-certificates 20240203

    libcurl4t64 suggests no packages.

    --ji4+VmRTS2Z5zr+4
    Content-Type: text/x-diff; charset=us-ascii
    Content-Disposition: attachment; filename="curl.diff" Content-Transfer-Encoding: quoted-printable

    diff -Nru curl-8.7.1/debian/patches/Fix_CURLINFO_REQUEST_SIZE.patch curl-8.7.1/debian/patches/Fix_CURLINFO_REQUEST_SIZE.patch
    --- curl-8.7.1/debian/patches/Fix_CURLINFO_REQUEST_SIZE.patch 1970-01-01 00:00:00.000000000 +0000
    +++ curl-8.7.1/debian/patches/Fix_CURLINFO_REQUEST_SIZE.patch 2024-04-19 13:18:39.000000000 +0000
    @@ -0,0 +1,210 @@
    +From 2793acbfc5e89fb130b1d4e045cb6cd7b6549412 Mon Sep 17 00:00:00 2001
    +From: Stefan Eissing <stefan@eissing.org>
    +Date: Thu, 4 Apr 2024 11:06:06 +0200
    +Subject: [PATCH] Fix CURLINFO_REQUEST_SIZE, add tests for transfer infos
    + reported
    +
    +- refs #13269
    +- tests for 'size_request' and other stats reported, for
    + presence and consistency
    +---
    + lib/transfer.c | 3 +
    + tests/http/test_16_info.py | 162 ++++++++++++++++++++++++++++++++++++
    + tests/http/testenv/httpd.py | 1 +
    + 3 files changed, 166 insertions(+)
    + create mode 100644 tests/http/test_16_info.py
    +
    +Index: curl-8.7.1/lib/transfer.c +===================================================================
    +--- curl-8.7.1.orig/lib/transfer.c
    ++++ curl-8.7.1/lib/transfer.c
    +@@ -1221,6 +1221,9 @@ CURLcode Cur