diff --git a/internal/wire/ack_frame.go b/internal/wire/ack_frame.go index 7909bffa8..65ab7008c 100644 --- a/internal/wire/ack_frame.go +++ b/internal/wire/ack_frame.go @@ -3,6 +3,7 @@ package wire import ( "bytes" "errors" + "math" "sort" "time" @@ -37,7 +38,13 @@ func parseAckFrame(r *bytes.Reader, ackDelayExponent uint8, version protocol.Ver if err != nil { return nil, err } - frame.DelayTime = time.Duration(delay*1<", 0)) + // The maximum encodable duration is ~292 years. + Expect(frame.DelayTime.Hours()).To(BeNumerically("~", 292*365*24, 365*24)) + }) + It("errors on EOF", func() { data := []byte{0x2} data = append(data, encodeVarInt(1000)...) // largest acked