From 38c420a35bed306ef27d9c7e9d51d2864bb127a2 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 5 Feb 2018 09:17:20 +0800 Subject: [PATCH] include the packet size in the error when packing a too large packet --- packet_packer.go | 5 +++-- packet_packer_test.go | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packet_packer.go b/packet_packer.go index ebaaa44a..a39a5a3a 100644 --- a/packet_packer.go +++ b/packet_packer.go @@ -366,8 +366,9 @@ func (p *packetPacker) writeAndSealPacket( buffer.Write(bytes.Repeat([]byte{0}, paddingLen)) } } - if protocol.ByteCount(buffer.Len()+sealer.Overhead()) > protocol.MaxPacketSize { - return nil, errors.New("PacketPacker BUG: packet too large") + + if size := protocol.ByteCount(buffer.Len() + sealer.Overhead()); size > protocol.MaxPacketSize { + return nil, fmt.Errorf("PacketPacker BUG: packet too large (%d bytes, allowed %d bytes)", size, protocol.MaxPacketSize) } raw = raw[0:buffer.Len()] diff --git a/packet_packer_test.go b/packet_packer_test.go index 537a2937..034ed8fe 100644 --- a/packet_packer_test.go +++ b/packet_packer_test.go @@ -679,7 +679,8 @@ var _ = Describe("Packet packer", func() { }, } _, err := packer.PackHandshakeRetransmission(packet) - Expect(err).To(MatchError("PacketPacker BUG: packet too large")) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("PacketPacker BUG: packet too large")) }) It("pads Initial packets to the required minimum packet size", func() {