Pretty much current git master (commit d75e6ce) plus a fix for the ngtcp2 build (not relevant).
operating system
Arch Linux.
Further information
It appears there is a bug in what Curl_altsvc_parse expects and what the caller provides. The function expects to work on a single header line without CRLF, this is being verified by the unit tests (tests/unit/unit1654.c).
However, the actual HTTP code passes the header including the CRLF. This means that after parsing the last part of the alt-svc header (h3-27=":4433"), it returns early because there were no more options. It did not save the new alternative service entry though...
/* Handle the optional 'ma' and 'persist' flags. Unknown flags are skipped. */for(;;) {
while(*p && ISBLANK(*p) && *p != ';' && *p != ',')
p++;
if(!*p || *p == ',') // <-- should have triggered, but it does not because p = "\r\n"break;
p++; /* pass the semicolon */if(!*p)
break;
result = getalnum(&p, option, sizeof(option));
The text was updated successfully, but these errors were encountered:
Fixed the alt-svc parser to treat a newline as end of line.
The unit tests in test 1654 were done without CRLF and thus didn't quite
match the real world. Now they use CRLF as well.
Reported-by: Peter Wu
Fixes#5445
Fixed the alt-svc parser to treat a newline as end of line.
The unit tests in test 1654 were done without CRLF and thus didn't quite
match the real world. Now they use CRLF as well.
Reported-by: Peter Wu
Assisted-by: Peter Wu
Assisted-by: Jay Satiro
Fixes#5445Closes#5446
Fixed the alt-svc parser to treat a newline as end of line.
The unit tests in test 1654 were done without CRLF and thus didn't quite
match the real world. Now they use CRLF as well.
Reported-by: Peter Wu
Assisted-by: Peter Wu
Assisted-by: Jay Satiro
Fixes#5445Closes#5446
I did this
This produces:
I expected the following
alt.cache
should contain a h3-27 entry which should have enabled h3-27 support on the next attempt.curl/libcurl version
Pretty much current git master (commit d75e6ce) plus a fix for the ngtcp2 build (not relevant).
operating system
Arch Linux.
Further information
It appears there is a bug in what
Curl_altsvc_parse
expects and what the caller provides. The function expects to work on a single header line without CRLF, this is being verified by the unit tests (tests/unit/unit1654.c).However, the actual HTTP code passes the header including the CRLF. This means that after parsing the last part of the alt-svc header (
h3-27=":4433"
), it returns early because there were no more options. It did not save the new alternative service entry though...The text was updated successfully, but these errors were encountered: