Re: libcurl(?) bug
| From: | Christoph M. Becker | Date: | Tue, 09 Feb 2021 13:11:02 +0000 |
| Subject: | Re: libcurl(?) bug | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-327483@lists.php.net to get a copy of this message | ||
On 09.02.2021 at 13:42, Tamas Papp wrote:
> On 2/9/21 1:30 PM, Christoph M. Becker wrote:
>>
>>> // NOK:
>>> curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: /\r\n"));
>> I don't think that CURLOPT_HTTPHEADERs are supposed to have a trailing
>> CRLF.
>
>
> However, I agree with you on that, since it breaks a previously
> correctly working code, it still looks like a bug.
>
> Unless the backward compatibility intentionally should not be kept for
> any reason.
>
>
> Am I wrong?
From looking at the current PHP-7.4 implementation, these headers are
forwarded to curl_easy_setopt() as is. The libcurl documentation of
CURLOPT_HTTPHEADER[1] explicitly states:
| The headers included in the linked list must not be CRLF-terminated,
| because libcurl adds CRLF after each header item. Failure to comply
| with this will result in strange bugs because the server will most
| likely ignore part of the headers you specified.
The only thing PHP could do here, would be to strip CR and LF from the
passed headers; at least it could be documented that the headers must
not be CRLF-terminated. Consider to file a bug report at
<https://bugs.php.net/>.
[1] <https://curl.se/libcurl/c/CURLOPT_HTTPHEADER.html>
Christoph