wallet2: fix exception on split txes

This commit is contained in:
moneromooo-monero 2017-09-20 10:35:15 +01:00
parent 5c5b0fd048
commit d5a9edf27a
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
1 changed files with 3 additions and 1 deletions

View File

@ -4353,7 +4353,8 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryp
} }
else else
{ {
THROW_WALLET_EXCEPTION_IF(original_output_index > dsts.size(), error::wallet_internal_error, "original_output_index too large"); THROW_WALLET_EXCEPTION_IF(original_output_index > dsts.size(), error::wallet_internal_error,
std::string("original_output_index too large: ") + std::to_string(original_output_index) + " > " + std::to_string(dsts.size()));
if (original_output_index == dsts.size()) if (original_output_index == dsts.size())
dsts.push_back(tx_destination_entry(0,addr)); dsts.push_back(tx_destination_entry(0,addr));
THROW_WALLET_EXCEPTION_IF(memcmp(&dsts[original_output_index].addr, &addr, sizeof(addr)), error::wallet_internal_error, "Mismatched destination address"); THROW_WALLET_EXCEPTION_IF(memcmp(&dsts[original_output_index].addr, &addr, sizeof(addr)), error::wallet_internal_error, "Mismatched destination address");
@ -4627,6 +4628,7 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryp
{ {
LOG_PRINT_L2("We have more to pay, starting another tx"); LOG_PRINT_L2("We have more to pay, starting another tx");
txes.push_back(TX()); txes.push_back(TX());
original_output_index = 0;
} }
} }
} }