aboutsummaryrefslogtreecommitdiff
path: root/src/wallet
diff options
context:
space:
mode:
authorJonas Schnelli <dev@jonasschnelli.ch>2017-01-16 11:10:12 +0100
committerJonas Schnelli <dev@jonasschnelli.ch>2017-03-24 10:28:39 +0100
commitd0a627a53aa8cc5cd190f54c95b888dff88a4d37 (patch)
tree7cf29b3bec17ea60859875eb6b76c9a5fb8612ce /src/wallet
parent9af8f00a7530934d4c9c64eb6c2676ac80b24ace (diff)
downloadbitcoin-d0a627a53aa8cc5cd190f54c95b888dff88a4d37.tar.xz
Fix issue where CDataStream->nVersion was taken a CKeyPool record version
Diffstat (limited to 'src/wallet')
-rw-r--r--src/wallet/wallet.cpp1
-rw-r--r--src/wallet/wallet.h15
2 files changed, 11 insertions, 5 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 9c51723664..488e6690cf 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -3933,6 +3933,7 @@ bool CWallet::BackupWallet(const std::string& strDest)
CKeyPool::CKeyPool()
{
nTime = GetTime();
+ fInternal = false;
}
CKeyPool::CKeyPool(const CPubKey& vchPubKeyIn, bool internalIn)
diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h
index bf6c5a2a87..d93830f085 100644
--- a/src/wallet/wallet.h
+++ b/src/wallet/wallet.h
@@ -114,12 +114,17 @@ public:
READWRITE(nVersion);
READWRITE(nTime);
READWRITE(vchPubKey);
- if (nVersion >= FEATURE_HD_SPLIT)
- READWRITE(fInternal);
- else
- {
- if (ser_action.ForRead())
+ if (ser_action.ForRead()) {
+ try {
+ READWRITE(fInternal);
+ }
+ catch (...) {
+ /* flag as external address if we can't read the internal boolean */
fInternal = false;
+ }
+ }
+ else {
+ READWRITE(fInternal);
}
}
};