Browse Source

fix wrong memcmp() usage in CKey::operator==

- add a check for CKey::size() of a and b (size can be 0 or 32)
- change the fixed value in memcmp() to use a.size() instead
- fixes #3090
try
Philip Kaufmann 11 years ago
parent
commit
a39967401e
  1. 3
      src/key.h

3
src/key.h

@ -205,7 +205,8 @@ public:
} }
friend bool operator==(const CKey &a, const CKey &b) { friend bool operator==(const CKey &a, const CKey &b) {
return a.fCompressed == b.fCompressed && memcmp(&a.vch[0], &b.vch[0], 32); return a.fCompressed == b.fCompressed && a.size() == b.size() &&
memcmp(&a.vch[0], &b.vch[0], a.size()) == 0;
} }
// Initialize using begin and end iterators to byte data. // Initialize using begin and end iterators to byte data.

Loading…
Cancel
Save