From 3140a378da43ae71c26304543bd9631f9fcb252d Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Tue, 9 Jul 2019 14:39:10 +0000 Subject: [PATCH] wallet_rpc_server: fix get_bulk_payments with short payment ids --- src/wallet/wallet_rpc_server.cpp | 5 +++++ tests/functional_tests/transfer.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp index 8b8d832dc..0e2a34470 100644 --- a/src/wallet/wallet_rpc_server.cpp +++ b/src/wallet/wallet_rpc_server.cpp @@ -1745,6 +1745,11 @@ namespace tools else if (payment_id_str.size() == 2 * sizeof(payment_id8)) { r = epee::string_tools::hex_to_pod(payment_id_str, payment_id8); + if (r) + { + memcpy(payment_id.data, payment_id8.data, 8); + memset(payment_id.data + 8, 0, 24); + } } else { diff --git a/tests/functional_tests/transfer.py b/tests/functional_tests/transfer.py index 7bf0f4957..d9a6e592e 100755 --- a/tests/functional_tests/transfer.py +++ b/tests/functional_tests/transfer.py @@ -519,6 +519,9 @@ class TransferTest(): res = self.wallet[2].get_bulk_payments(payment_ids = ['1'*64, '1234500000012345abcde00000abcdeff1234500000012345abcde00000abcde', '2'*64]) assert len(res.payments) >= 1 # one tx was sent + res = self.wallet[1].get_bulk_payments(["1111111122222222"]) + assert len(res.payments) >= 1 # we have one of these + def check_double_spend_detection(self): print('Checking double spend detection') txes = [[None, None], [None, None]]