From 6e3a65ed9dd6c3e6a9ea8003ec743bd3b0f15242 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Wed, 18 Nov 2020 15:58:47 +1100 Subject: [PATCH 1/2] Packets can't be zero-length Closes #4361. --- draft-ietf-quic-transport.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 73bb26813a..2592e10242 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -4667,7 +4667,7 @@ Initial Packet { Token (..), Length (i), Packet Number (8..32), - Packet Payload (..), + Packet Payload (8..), } ~~~ {: #initial-format title="Initial Packet"} @@ -4766,7 +4766,7 @@ limitations. Source Connection ID (0..160), Length (i), Packet Number (8..32), - Packet Payload (..), + Packet Payload (8..), } ~~~ {: #0rtt-format title="0-RTT Packet"} @@ -4816,7 +4816,7 @@ Handshake Packet { Source Connection ID (0..160), Length (i), Packet Number (8..32), - Packet Payload (..), + Packet Payload (8..), } ~~~ {: #handshake-format title="Handshake Protected Packet"} @@ -4976,7 +4976,7 @@ Short Header Packet { Packet Number Length (2), Destination Connection ID (0..160), Packet Number (8..32), - Packet Payload (..), + Packet Payload (8..), } ~~~~~ {: #fig-short-header title="Short Header Packet Format"} From 5ed5d481ee53442bccb38ae7a6a284edae5bc7b3 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Wed, 18 Nov 2020 16:32:33 +1100 Subject: [PATCH 2/2] OK, forgot the error code --- draft-ietf-quic-transport.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 2592e10242..0f100a00ff 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -3447,8 +3447,10 @@ Packet Payload { {: #packet-frames title="QUIC Payload"} The payload of a packet that contains frames MUST contain at least one frame, -and MAY contain multiple frames and multiple frame types. Frames always fit -within a single QUIC packet and cannot span multiple packets. +and MAY contain multiple frames and multiple frame types. An endpoint MUST +treat receipt of a packet containing no frames as a connection error of type +PROTOCOL_VIOLATION. Frames always fit within a single QUIC packet and cannot +span multiple packets. Each frame begins with a Frame Type, indicating its type, followed by additional type-dependent fields: