Bug #79855 [NEW]: php_curl lost content-length header on 302 redirect

From: Date: Tue, 14 Jul 2020 07:00:02 +0000
Subject: Bug #79855 [NEW]: php_curl lost content-length header on 302 redirect
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-228021@lists.php.net to get a copy of this message
From: kaa at g-it dot su Operating system: Ubuntu 18.04.4 LTS PHP version: 7.2.32 Package: cURL related Bug Type: Bug Bug description:php_curl lost content-length header on 302 redirect Description: ------------ Right version of php I'm using is 7.2.24. Installed from Ubuntu repos. PHP_curl with enabled CURLOPT_FOLLOWLOCATION lost http header "Content-Length" on second redirect with 302 "Redirect temporary". Seems to be relevant to #53556 Test script: --------------- $verbose = fopen('curl.log', 'w+'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $path); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, Array ( "Content-Type: application/x-www-form-urlencoded", "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" )); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $curl_method); curl_setopt($ch, CURLOPT_POSTFIELDS, $order_data); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_STDERR, $verbose); $response = curl_exec($ch); curl_close($ch); Actual result: -------------- * Trying xxx.xxx.xxx.xxx... * TCP_NODELAY set * Connected to api.dev.example.com (188.186.236.44) port 443 (#0) * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * ALPN, server accepted to use http/1.1 * Server certificate: * subject: OU=Domain Control Validated; OU=PositiveSSL Wildcard; CN=*.dev.example.com * start date: Apr 27 00:00:00 2019 GMT * expire date: Apr 26 23:59:59 2021 GMT * subjectAltName: host "api.dev.example.com" matched cert's "*.dev.example.com" * issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA * SSL certificate verify ok. > POST /p2p/v2/payer HTTP/1.1 Host: api.dev.example.com Content-Type: application/x-www-form-urlencoded Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Length: 224 * upload completely sent off: 224 out of 224 bytes < HTTP/1.1 302 Found < Server: nginx < Date: Mon, 13 Jul 2020 14:22:54 GMT < Content-Type: text/html; charset=utf-8 < Content-Length: 213 < Connection: keep-alive < Keep-Alive: timeout=20 < Cache-Control: private < Location: /api/payer/auth?sessionToken=e744a95992fa405ba10662bbc6908d6bedd48a73cc0d45d589f4ef2f7d7a0b88 < Set-Cookie: returnUrl=http://example.com/returnurl.php; path=/ < * Ignoring the response-body * Connection #0 to host api.dev.walletone.com left intact * Issue another request to this URL: 'https://api.dev.example.com/auth?sessionToken=e744b95992fa405ba10662bbc6908d6b7dd48a73cc0d45d589f4ef2f7d7a0b88' * Switch from POST to GET * Found bundle for host api.dev.example.com: 0x5649fd243480 [can pipeline] * Re-using existing connection! (#0) with host api.dev.example.com * Connected to api.dev.example.com (188.186.236.44) port 443 (#0) > POST /auth?sessionToken=e744b95992fa405ba10662bbc6908d6b7dd48a73cc0d45d589f4ef2f7d7a0b88 HTTP/1.1 Host: api.dev.example.com Content-Type: application/x-www-form-urlencoded Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 < HTTP/1.1 411 Length Required < Server: nginx < Date: Mon, 13 Jul 2020 14:22:54 GMT < Content-Type: text/html; charset=us-ascii < Content-Length: 344 < Connection: keep-alive < Keep-Alive: timeout=20 < * Connection #0 to host api.dev.example.com left intact -- Edit bug report at https://bugs.php.net/bug.php?id=79855&edit=1 -- Fix committed: https://bugs.php.net/fix.php?id=79855&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=79855&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=79855&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=79855&r=needscript Try newer version: https://bugs.php.net/fix.php?id=79855&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=79855&r=support Expected behavior: https://bugs.php.net/fix.php?id=79855&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=79855&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=79855&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=79855&r=globals PHP version support discontinued: https://bugs.php.net/fix.php?id=79855&r=phptooold Daylight Savings: https://bugs.php.net/fix.php?id=79855&r=dst IIS Stability: https://bugs.php.net/fix.php?id=79855&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=79855&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=79855&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=79855&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=79855&r=mysqlcfg

« previous php.bugs (#228021) next »