OSDN Git Service

fix
authorwz <mars@bytom.io>
Wed, 23 Oct 2019 06:14:44 +0000 (14:14 +0800)
committerwz <mars@bytom.io>
Wed, 23 Oct 2019 06:14:44 +0000 (14:14 +0800)
consensus/segwit/segwit.go

index a994401..2607087 100644 (file)
@@ -178,6 +178,10 @@ func GetXpubsAndRequiredFromProg(prog []byte) ([]ed25519.PublicKey, int, error)
                return nil, 0, errors.New("bad op of instruction for issuance program")
        }
 
+       if !(insts[instsLen-2].IsPushdata() && insts[instsLen-3].IsPushdata()) {
+               return nil, 0, errors.New("bad pushdata in instruction for issuance program")
+       }
+
        required, err := vm.AsInt64(insts[instsLen-3].Data)
        if err != nil {
                return nil, 0, err
@@ -194,10 +198,6 @@ func GetXpubsAndRequiredFromProg(prog []byte) ([]ed25519.PublicKey, int, error)
                        return nil, 0, errors.New("bad publicKey in instruction for issuance program")
                }
 
-               if !insts[i].IsPushdata() {
-                       return nil, 0, errors.New("bad data type in instruction for issuance program")
-               }
-
                pubs = append(pubs, insts[i].Data)
        }