aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2021-06-24 14:13:19 -0500
committerluigi1111 <luigi1111w@gmail.com>2021-06-24 14:13:19 -0500
commit14a1b89122406a937d7e0bc3712d6fc8ae675b64 (patch)
tree9e4eb8746a1b4985aecb01936b8475cf49975d38
parentMerge pull request #7750 (diff)
parentunit_tests: check for ge_frombytes_vartime failure (diff)
downloadmonero-14a1b89122406a937d7e0bc3712d6fc8ae675b64.tar.xz
Merge pull request #7752
4251cc0 unit_tests: check for ge_frombytes_vartime failure (moneromooo-monero) 67b97a5 easylogging++: do not delete uninitialized objects (moneromooo-monero) 7b6d959 trezor: fix potential use of uninitialized memory (moneromooo-monero)
-rw-r--r--src/device_trezor/trezor/transport.cpp9
-rw-r--r--tests/unit_tests/multiexp.cpp2
-rw-r--r--tests/unit_tests/tx_proof.cpp6
3 files changed, 11 insertions, 6 deletions
diff --git a/src/device_trezor/trezor/transport.cpp b/src/device_trezor/trezor/transport.cpp
index 194176413..7a79d8f95 100644
--- a/src/device_trezor/trezor/transport.cpp
+++ b/src/device_trezor/trezor/transport.cpp
@@ -573,8 +573,13 @@ namespace trezor{
std::string req = "PINGPING";
char res[8];
- m_socket->send_to(boost::asio::buffer(req.c_str(), req.size()), m_endpoint);
- receive(res, 8, nullptr, false, timeout);
+ const auto written = m_socket->send_to(boost::asio::buffer(req.c_str(), req.size()), m_endpoint);
+ if (written != req.size())
+ return false;
+ memset(res, 0, sizeof(res));
+ const auto received = receive(res, 8, nullptr, false, timeout);
+ if (received != 8)
+ return false;
return memcmp(res, "PONGPONG", 8) == 0;
diff --git a/tests/unit_tests/multiexp.cpp b/tests/unit_tests/multiexp.cpp
index 722c568da..212aa0e40 100644
--- a/tests/unit_tests/multiexp.cpp
+++ b/tests/unit_tests/multiexp.cpp
@@ -260,7 +260,7 @@ TEST(multiexp, scalarmult_triple)
rct::key res;
ge_p3 Gp3;
- ge_frombytes_vartime(&Gp3, rct::G.bytes);
+ ASSERT_EQ(ge_frombytes_vartime(&Gp3, rct::G.bytes), 0);
static const rct::key scalars[] = {
rct::Z,
diff --git a/tests/unit_tests/tx_proof.cpp b/tests/unit_tests/tx_proof.cpp
index c5d06bc68..0adb8713e 100644
--- a/tests/unit_tests/tx_proof.cpp
+++ b/tests/unit_tests/tx_proof.cpp
@@ -58,14 +58,14 @@ TEST(tx_proof, prove_verify_v2)
// R_B = rB
crypto::public_key R_B;
ge_p3 B_p3;
- ge_frombytes_vartime(&B_p3,&B);
+ ASSERT_EQ(ge_frombytes_vartime(&B_p3,&B), 0);
ge_p2 R_B_p2;
ge_scalarmult(&R_B_p2, &unwrap(r), &B_p3);
ge_tobytes(&R_B, &R_B_p2);
// R_G = rG
crypto::public_key R_G;
- ge_frombytes_vartime(&B_p3,&B);
+ ASSERT_EQ(ge_frombytes_vartime(&B_p3,&B), 0);
ge_p3 R_G_p3;
ge_scalarmult_base(&R_G_p3, &unwrap(r));
ge_p3_tobytes(&R_G, &R_G_p3);
@@ -73,7 +73,7 @@ TEST(tx_proof, prove_verify_v2)
// D = rA
crypto::public_key D;
ge_p3 A_p3;
- ge_frombytes_vartime(&A_p3,&A);
+ ASSERT_EQ(ge_frombytes_vartime(&A_p3,&A), 0);
ge_p2 D_p2;
ge_scalarmult(&D_p2, &unwrap(r), &A_p3);
ge_tobytes(&D, &D_p2);