• Kirill Smelkov's avatar
    go/neo/neonet: Fix thinko in recvPkt · 4f6adb26
    Kirill Smelkov authored
    We were returning packet with tail read for next packet data.
    Previously decoding was forgiving, but upcoming rework for msgpack
    support will add check to catch packets with overlong payload, e.g.
    
        === RUN   TestEmptyDB/py/!ssl
        I: runneo.py: /tmp/neo214694750/1 !ssl: started master(s): 127.0.0.1:30621
        127.0.0.1:42266 > 127.0.0.1:30621: .1 RequestIdentification &{CLIENT ?(0)0  1 ø [] []}
        127.0.0.1:42266 < 127.0.0.1:30621: (N: decode header: len(payload) != msgLen) 00 00 00 01 80 01 00 00 00 09 00 f0 00 00 01 e0 00 00 01 00 00 00 00 00 06 00 00 00 58 41 d7 ff 69 82 0a 91 25 00 00 00 03 02 00 00 00 00 e0 00 00 01 02 41 d7 ff 69 82 0a 78 ff 01 00 00 00 09 31 32 37 2e 30 2e 30 2e 31 96 f7 00 00 00 01 02 41 d7 ff 69 81 c6 65 f5 00 00 00 00 09 31 32 37 2e 30 2e 30 2e 31 77 9d f0 00 00 01 02 ff ff ff ff ff ff ff ff 00 00 00 02 00 0a 00 00 00 19 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 01
    
    -> Fix is: pkt.data should be data[:pktLen], not data[:n] since n is how
    much we have read at all.
    4f6adb26
connection.go 45 KB