Make QuicDispatcher reject packets with invalid short connection IDs This CLs enforces a MUST in the IETF spec that dictates that clients cannot send initial connection IDs under 8 bytes. The QuicDispatcher will reject (and close the connection of) any packet whose connection ID is shorter than 8 (or what it was configured for). The behavior is disabled by quartc. This only impacts v99 because connection IDs of any length other than 8 are already currently dropped when using versions < 99. gfe-relnote: v99 only, not flag protected PiperOrigin-RevId: 239629063 Change-Id: I85cee11d84566073e8cbb3569ba3e88e91192f2a
diff --git a/quic/quartc/quartc_dispatcher.cc b/quic/quartc/quartc_dispatcher.cc index 4c35c54..fd4f289 100644 --- a/quic/quartc/quartc_dispatcher.cc +++ b/quic/quartc/quartc_dispatcher.cc
@@ -38,6 +38,8 @@ packet_writer_(packet_writer.get()) { // Allow incoming packets to set our expected connection ID length. SetShouldUpdateExpectedConnectionIdLength(true); + // Allow incoming packets with connection ID lengths shorter than allowed. + SetAllowShortInitialConnectionIds(true); // QuicDispatcher takes ownership of the writer. QuicDispatcher::InitializeWithWriter(packet_writer.release()); // NB: This must happen *after* InitializeWithWriter. It can call us back