From 11f4f605e21943c5d7adabddcd6f81f8e8c3e0c0 Mon Sep 17 00:00:00 2001 From: miketout Date: Sat, 13 Oct 2018 21:42:30 -0700 Subject: [PATCH] Update signing to deal with NULL keystore --- src/script/sign.cpp | 2 +- src/script/sign.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/script/sign.cpp b/src/script/sign.cpp index 6c3a4678c..e384d0e74 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -245,7 +245,7 @@ static bool SignStepCC(const BaseSignatureCreator& creator, const CScript& scrip // first of priv key in our key store or contract address is what we sign with for (auto pk : p.vKeys) { - if (creator.KeyStore().GetKey(pk.GetID(), privKey) && privKey.IsValid()) + if (creator.IsKeystoreValid() && creator.KeyStore().GetKey(pk.GetID(), privKey) && privKey.IsValid()) break; if (pk == CPubKey(ParseHex(C.CChexstr))) diff --git a/src/script/sign.h b/src/script/sign.h index 45e469efc..ac2ab6476 100644 --- a/src/script/sign.h +++ b/src/script/sign.h @@ -23,7 +23,8 @@ protected: public: BaseSignatureCreator(const CKeyStore* keystoreIn) : keystore(keystoreIn) {} - const CKeyStore& KeyStore() const { return *keystore; }; + const bool IsKeystoreValid() const { return keystore != NULL; } + const CKeyStore& KeyStore() const { return *keystore; } virtual ~BaseSignatureCreator() {} virtual const BaseSignatureChecker& Checker() const =0;