Skip to content

Conversation

@emanuele6
Copy link
Contributor

@emanuele6 emanuele6 commented Jul 9, 2023

Control characters without a shorthand e.g. %06 were being encoded as "u0006" instead of "\u0006".

See curl/trurl#214 (comment).


I tried to add a test for this that gets a response with Foo: %hex[%06%07%08]hex% in the headers, and checks that header_json also contains "foo": "\u0006\u0007\b", but nghttpx doesn't seem to like that.

Maybe I could use a test that checks the entire -w %{json} output, and tests filename_effecitive? That actually doesn't seem to work because curl -Ow '%{json}\n' example.org/file%06.html downloads to file%06.html, and outputs "filename_effective": "file%06.html"; when using -O the path from the URL is not url decoded.

Testing this would be easier using the --expand-foo '{{json:something}}' introduced by #11346, so maybe that PR could add a test for this instead.

Control characters without a special escape sequence e.g. %00 or %06
were being encoded as "u0006" instead of "\u0006".
@bagder
Copy link
Member

bagder commented Jul 9, 2023

I'm fine with delaying adding a test case for this until #11346 has been merged, which will not happen until the feature window opens again.

@bagder bagder closed this in 8484ad0 Jul 9, 2023
@bagder
Copy link
Member

bagder commented Jul 9, 2023

Thanks!

@emanuele6 emanuele6 deleted the fixjsonctl branch July 9, 2023 16:58
@emanuele6
Copy link
Contributor Author

emanuele6 commented Jul 9, 2023

I figure out a way this could be tested:

curl -w '%{json}\n' -o $'foo\x06\x07\x08' file:///dev/null

Before this patch, that will output "foou0006u0007\b" instead of "foo\u0006\u0007\b" for filename_effective, but it will actually download to a file named "foo" followed 0x06 0x07 0x08.

bch pushed a commit to bch/curl that referenced this pull request Jul 19, 2023
Control characters without a special escape sequence e.g. %00 or %06
were being encoded as "u0006" instead of "\u0006".

Ref: curl/trurl#214 (comment)
Closes curl#11414
ptitSeb pushed a commit to wasix-org/curl that referenced this pull request Sep 25, 2023
Control characters without a special escape sequence e.g. %00 or %06
were being encoded as "u0006" instead of "\u0006".

Ref: curl/trurl#214 (comment)
Closes curl#11414
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants