From 3bf38b7b13aa884fc6c1ecade2289146ec032ef3 Mon Sep 17 00:00:00 2001 From: Fredy Wijaya Date: Tue, 30 Jul 2024 09:55:08 -0500 Subject: [PATCH] Quiche roll 20240729152715 (#35473) Update QUICHE from f8ca4ffbe to f4ed5e0c7 https://github.com/google/quiche/compare/f8ca4ffbe..f4ed5e0c7 ``` $ git log f8ca4ffbe..f4ed5e0c7 --date=short --no-merges --format="%ad %al %s" 2024-07-26 rch Modernize the HTTP/3 HttpDecoder by using non-const references in place of non-null pointers, when they do not outlive the call. Annotate with absl::NonNull when pointer do outlive the call. 2024-07-25 quiche-dev Add method to serialize connection close packet with large packet number 2024-07-24 birenroy Always obeys BalsaFrame::invalid_chars_level_ when parsing header fields. 2024-07-24 wub Inline QuicDispatcher::BufferEarlyPacket() from all call sites, and remove this function. 2024-07-22 quiche-dev Fix bug for call to Visitor::OnWrite() 2024-07-19 vasilvv Bump version number to draft-05. 2024-07-19 vasilvv Implement draft-05 SUBSCRIBE/SUBSCRIBE_UPDATE 2024-07-18 vasilvv Support serialization and parsing for MoQT draft-05 group order in SUBSCRIBE_OK. 2024-07-18 vasilvv Support serialization and parsing for MoQT draft-05 publisher priority. 2024-07-18 vasilvv Refactor MoQT sending logic to pull objects from the application, instead of pushing them onto individual MoQT sessions. 2024-07-18 birenroy Updates SpdyFrameSequence::GetIR() to return a pointer rather than a reference. 2024-07-18 danzh Unhide security fix to QuicStreamSequencerBuffer added in cl/626072759. 2024-07-18 fayang Add NOIP connection option and AddConnectionOptionsToSend method. ``` --------- Signed-off-by: Fredy Wijaya --- bazel/external/quiche.BUILD | 1 + bazel/external/quiche_sequencer_fix.patch | 16 ---------------- bazel/repositories.bzl | 4 ---- bazel/repository_locations.bzl | 6 +++--- 4 files changed, 4 insertions(+), 23 deletions(-) delete mode 100644 bazel/external/quiche_sequencer_fix.patch diff --git a/bazel/external/quiche.BUILD b/bazel/external/quiche.BUILD index 0f9339f2a1c3..0abec6540ec7 100644 --- a/bazel/external/quiche.BUILD +++ b/bazel/external/quiche.BUILD @@ -3102,6 +3102,7 @@ envoy_quic_cc_library( ":quic_core_http_spdy_utils_lib", ":quic_core_types_lib", ":quic_platform_base", + "@com_google_absl//absl/base:nullability", ], ) diff --git a/bazel/external/quiche_sequencer_fix.patch b/bazel/external/quiche_sequencer_fix.patch deleted file mode 100644 index b4203e92b6e3..000000000000 --- a/bazel/external/quiche_sequencer_fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -# Fix https://github.com/envoyproxy/envoy-setec/issues/1496#issue-2251291349 - -diff --git a/quiche/quic/core/quic_stream_sequencer_buffer.cc b/quiche/quic/core/quic_stream_sequencer_buffer.cc -index d364d61bc..0966af4b0 100644 ---- a/quiche/quic/core/quic_stream_sequencer_buffer.cc -+++ b/quiche/quic/core/quic_stream_sequencer_buffer.cc -@@ -388,7 +388,8 @@ bool QuicStreamSequencerBuffer::PeekRegion(QuicStreamOffset offset, - - // Determine if entire block has been received. - size_t end_block_idx = GetBlockIndex(FirstMissingByte()); -- if (block_idx == end_block_idx) { -+ if (block_idx == end_block_idx && -+ block_offset < GetInBlockOffset(FirstMissingByte())) { - // Only read part of block before FirstMissingByte(). - iov->iov_len = GetInBlockOffset(FirstMissingByte()) - block_offset; - } else { diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index c6b64a84bb34..b5509660e92d 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -1120,10 +1120,6 @@ def _com_github_google_quiche(): external_http_archive( name = "com_github_google_quiche", patch_cmds = ["find quiche/ -type f -name \"*.bazel\" -delete"], - patches = [ - "@envoy//bazel/external:quiche_sequencer_fix.patch", - ], - patch_args = ["-p1"], build_file = "@envoy//bazel/external:quiche.BUILD", ) native.bind( diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 5154908e4e28..8e93dd784593 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -1186,12 +1186,12 @@ REPOSITORY_LOCATIONS_SPEC = dict( project_name = "QUICHE", project_desc = "QUICHE (QUIC, HTTP/2, Etc) is Google‘s implementation of QUIC and related protocols", project_url = "https://github.com/google/quiche", - version = "f8ca4ffbe5eb5c099bd11ba3e90553fa282c8421", - sha256 = "7648ede3f32bc6367a629b245d268c9be47ba05e23b4345a54152dabeba387d9", + version = "f4ed5e0c74485fb302367b833b8974373fed9e4c", + sha256 = "05e40b18e78b76a14bfa02eca1d6ebcf4c2ea0333c5db9fbe04287f912db2c20", urls = ["https://github.com/google/quiche/archive/{version}.tar.gz"], strip_prefix = "quiche-{version}", use_category = ["controlplane", "dataplane_core"], - release_date = "2024-07-17", + release_date = "2024-07-26", cpe = "N/A", license = "BSD-3-Clause", license_url = "https://github.com/google/quiche/blob/{version}/LICENSE",