Browse Source

More review feedback

Guillaume Ballet 6 years ago
parent
commit
6f21520a82
1 changed files with 5 additions and 0 deletions
  1. 5 0
      accounts/scwallet/apdu.go

+ 5 - 0
accounts/scwallet/apdu.go

@@ -19,6 +19,7 @@ package scwallet
 import (
 	"bytes"
 	"encoding/binary"
+	"fmt"
 )
 
 // commandAPDU represents an application data unit sent to a smartcard.
@@ -66,6 +67,10 @@ type responseAPDU struct {
 
 // deserialize deserializes a response APDU.
 func (ra *responseAPDU) deserialize(data []byte) error {
+	if len(data) < 2 {
+		return fmt.Errorf("can not deserialize data: payload too short (%d < 2)", len(data))
+	}
+
 	ra.Data = make([]byte, len(data)-2)
 
 	buf := bytes.NewReader(data)