Accept empty pkt-line data packets · Entire

Accept empty pkt-line data packets

1481b28→main·

pjbgf·2mo ago·2 files·+19 added/-1 removed

Changes

2

60 unmodified lines

61
62
63
64
64
65
66
67
68
69
70
71
72

60 unmodified lines

if err != nil {
        return PacketData, nil, err
    }
    if n <= 4 {
    if n < 4 {
        return PacketData, nil, pktline.ErrInvalidPktLen
    }
    if n == 4 {
        return PacketData, pr.buf[:0], nil
    }

payloadLen := n - 4
    if payloadLen > cap(pr.buf) {

Minternal/gitproto/pktline.go+4/-1

43 unmodified lines

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

43 unmodified lines

}
}

func TestPacketReaderHandlesEmptyDataPacket(t *testing.T) {
    reader := NewPacketReader(bytes.NewBufferString("0004"))

kind, payload, err := reader.ReadPacket()
    if err != nil {
        t.Fatalf("read empty data packet: %v", err)
    }
    if kind != PacketData {
        t.Fatalf("kind = %v, want PacketData", kind)
    }
    if len(payload) != 0 {
        t.Fatalf("payload length = %d, want 0", len(payload))
    }
}

func TestDecodeV2Capabilities(t *testing.T) {
    wire := "" +
        "000eversion 2\n" +