From 8d8da386f26482e06dc21989a6b5ade69f0a46d9 Mon Sep 17 00:00:00 2001
From: Yusef Napora <yusef@protocol.ai>
Date: Thu, 16 Jan 2020 09:50:08 -0500
Subject: [PATCH] return buffer to pool before early return

---
 record/envelope.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/record/envelope.go b/record/envelope.go
index 880fcad..6e33e15 100644
--- a/record/envelope.go
+++ b/record/envelope.go
@@ -59,10 +59,10 @@ func MakeEnvelope(privateKey crypto.PrivKey, domain string, payloadType []byte,
 
 	seq := statelessSeqNo()
 	unsigned, err := makeUnsigned(domain, payloadType, payload, seq)
+	defer pool.Put(unsigned)
 	if err != nil {
 		return nil, err
 	}
-	defer pool.Put(unsigned)
 
 	sig, err := privateKey.Sign(unsigned)
 	if err != nil {
@@ -194,10 +194,10 @@ func (e *Envelope) Equal(other *Envelope) bool {
 // or an error if signature validation fails.
 func (e *Envelope) validate(domain string) error {
 	unsigned, err := makeUnsigned(domain, e.PayloadType, e.RawPayload, e.Seq)
+	defer pool.Put(unsigned)
 	if err != nil {
 		return err
 	}
-	defer pool.Put(unsigned)
 
 	valid, err := e.PublicKey.Verify(unsigned, e.signature)
 	if err != nil {