Merge pull request #4848

80be2dca unit_tests: don't take the address of an unwrapped secret key (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2018-12-04 17:06:46 +02:00
commit 3552553f89
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD

View File

@ -47,6 +47,9 @@ namespace
"8b655970153799af2aeadc9ff1add0ea6c7251d54154cfa92c173a0dd39c1f94" "8b655970153799af2aeadc9ff1add0ea6c7251d54154cfa92c173a0dd39c1f94"
"6c7251d54154cfa92c173a0dd39c1f948b655970153799af2aeadc9ff1add0ea"; "6c7251d54154cfa92c173a0dd39c1f948b655970153799af2aeadc9ff1add0ea";
template<typename T> void *addressof(T &t) { return &t; }
template<> void *addressof(crypto::secret_key &k) { return addressof(unwrap(unwrap(k))); }
template<typename T> template<typename T>
bool is_formatted() bool is_formatted()
{ {
@ -55,7 +58,7 @@ namespace
static_assert(alignof(T) == 1, "T must have 1 byte alignment"); static_assert(alignof(T) == 1, "T must have 1 byte alignment");
static_assert(sizeof(T) <= sizeof(source), "T is too large for source"); static_assert(sizeof(T) <= sizeof(source), "T is too large for source");
static_assert(sizeof(T) * 2 <= sizeof(expected), "T is too large for destination"); static_assert(sizeof(T) * 2 <= sizeof(expected), "T is too large for destination");
std::memcpy(std::addressof(value), source, sizeof(T)); std::memcpy(addressof(value), source, sizeof(T));
std::stringstream out; std::stringstream out;
out << "BEGIN" << value << "END"; out << "BEGIN" << value << "END";