From 9efc1a847e53b63847f6f95e0857b1a6300786eb Mon Sep 17 00:00:00 2001 From: Antoine Rondelet Date: Sat, 25 May 2019 22:57:07 +0100 Subject: [PATCH] crypto/bn256/cloudflare: checks for nil pointers in Marshal functions (#19609) * Added checks for nil pointers in Marshal functions * Set nil pointer to identity in GT before marshaling --- crypto/bn256/cloudflare/bn256.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crypto/bn256/cloudflare/bn256.go b/crypto/bn256/cloudflare/bn256.go index c6ea2d07e..38822a76b 100644 --- a/crypto/bn256/cloudflare/bn256.go +++ b/crypto/bn256/cloudflare/bn256.go @@ -100,6 +100,10 @@ func (e *G1) Marshal() []byte { // Each value is a 256-bit number. const numBytes = 256 / 8 + if e.p == nil { + e.p = &curvePoint{} + } + e.p.MakeAffine() ret := make([]byte, numBytes*2) if e.p.IsInfinity() { @@ -382,6 +386,11 @@ func (e *GT) Marshal() []byte { // Each value is a 256-bit number. const numBytes = 256 / 8 + if e.p == nil { + e.p = &gfP12{} + e.p.SetOne() + } + ret := make([]byte, numBytes*12) temp := &gfP{}