dedis / protobuf

Reflection-based Protocol Buffers for Go
GNU General Public License v2.0
76 stars 15 forks source link

Fix BinaryMarshaller support and include an example of big.Int marshaling #55

Closed jeffallen closed 5 years ago

jeffallen commented 5 years ago

Fixes #54.

jeffallen commented 5 years ago

This PR causes a stack overflow when encoding messges for vss:

goroutine 76 [running]:
runtime.getitab(0x1557400, 0x15537a0, 0x1, 0xc05c000388)
    /usr/local/Cellar/go/1.11/libexec/src/runtime/iface.go:33 +0x380 fp=0xc05c000350 sp=0xc05c000348 pc=0x100a980
runtime.assertE2I2(0x1557400, 0x15537a0, 0xc0001f6af0, 0xc05c0003e8, 0xc000010000, 0x1557400)
    /usr/local/Cellar/go/1.11/libexec/src/runtime/iface.go:560 +0x43 fp=0xc05c000380 sp=0xc05c000350 pc=0x100bdf3
github.com/dedis/protobuf.Encode(0x15537a0, 0xc0001f6af0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/jallen/go/src/github.com/dedis/protobuf/encode.go:51 +0x9e fp=0xc05c0003d8 sp=0xc05c000380 pc=0x125950e
github.com/dedis/kyber/share/vss/rabin.(*Deal).MarshalBinary(0xc0001f6af0, 0x15537a0, 0xc0001f6af0, 0x1f59110, 0xc0001f6af0, 0x1557401)
    /Users/jallen/go/src/github.com/dedis/kyber/share/vss/rabin/vss.go:750 +0x37 fp=0xc05c000420 sp=0xc05c0003d8 pc=0x1489037
github.com/dedis/protobuf.Encode(0x15537a0, 0xc0001f6af0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/jallen/go/src/github.com/dedis/protobuf/encode.go:52 +0x29a fp=0xc05c000478 sp=0xc05c000420 pc=0x125970a
github.com/dedis/kyber/share/vss/rabin.(*Deal).MarshalBinary(0xc0001f6af0, 0x15537a0, 0xc0001f6af0, 0x1f59110, 0xc0001f6af0, 0x1557401)
    /Users/jallen/go/src/github.com/dedis/kyber/share/vss/rabin/vss.go:750 +0x37 fp=0xc05c0004c0 sp=0xc05c000478 pc=0x1489037
github.com/dedis/protobuf.Encode(0x15537a0, 0xc0001f6af0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/jallen/go/src/github.com/dedis/protobuf/encode.go:52 +0x29a fp=0xc05c000518 sp=0xc05c0004c0 pc=0x125970a
github.com/dedis/kyber/share/vss/rabin.(*Deal).MarshalBinary(0xc0001f6af0, 0x15537a0, 0xc0001f6af0, 0x1f59110, 0xc0001f6af0, 0x1557401)
    /Users/jallen/go/src/github.com/dedis/kyber/share/vss/rabin/vss.go:750 +0x37 fp=0xc05c000560 sp=0xc05c000518 pc=0x1489037
github.com/dedis/protobuf.Encode(0x15537a0, 0xc0001f6af0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/jallen/go/src/github.com/dedis/protobuf/encode.go:52 +0x29a fp=0xc05c0005b8 sp=0xc05c000560 pc=0x125970a
github.com/dedis/kyber/share/vss/rabin.(*Deal).MarshalBinary(0xc0001f6af0, 0x15537a0, 0xc0001f6af0, 0x1f59110, 0xc0001f6af0, 0x1557401)
    /Users/jallen/go/src/github.com/dedis/kyber/share/vss/rabin/vss.go:750 +0x37 fp=0xc05c000600 sp=0xc05c0005b8 pc=0x1489037
github.com/dedis/protobuf.Encode(0x15537a0, 0xc0001f6af0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/jallen/go/src/github.com/dedis/protobuf/encode.go:52 +0x29a fp=0xc05c000658 sp=0xc05c000600 pc=0x125970a
github.com/dedis/kyber/share/vss/rabin.(*Deal).MarshalBinary(0xc0001f6af0, 0x15537a0, 0xc0001f6af0, 0x1f59110, 0xc0001f6af0, 0x1557401)
    /Users/jallen/go/src/github.com/dedis/kyber/share/vss/rabin/vss.go:750 +0x37 fp=0xc05c0006a0 sp=0xc05c000658 pc=0x1489037
github.com/dedis/protobuf.Encode(0x15537a0, 0xc0001f6af0, 0x0, 0x0, 0x0, 0x0, 0x0)

Still diggin.