Hi Tim,

Il 09/07/2026 13:10, Tim Düsterhus ha scritto:
Hi

On 2026-07-09 12:49, Matteo Beccati wrote:
"\r\n" inside headers used to be perfectly legal for multiline headers.

This is not correct. What was legal was the sequence "\r\n" followed *by either a space or a tab*. And it is equivalent to just a space. The newlines are not “visible” in the parsed value. There is literally zero reason to emit the obsolete line-folding syntax nowadays. As far as I can tell it only existed due to considerations regarding the length of a single line.

Yes, that's precisely my point. "\r\n" followed by a space or tab used to be a thing. Yes, it is obsolete, but for whatever reason I might be required to test that specific scenario using curl.


Curl specifically documents:

The headers included in the linked list must not be CRLF-terminated, since libcurl adds CRLF after each header item itself. Failure to comply with this might result in strange behavior. libcurl passes on the verbatim strings you give it, without any filter or other safe guards. That includes white space and control characters.
Yes, and that seems to be a design choice from the curl team, that we might want to respect.

Blocking "\r\n" would be perfectly fine in a userland HTTP Client before calling curl_setopt().


Cheers
--
Matteo Beccati

Reply via email to