aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core
diff options
context:
space:
mode:
authorLeon Klingele <git@leonklingele.de>2018-01-30 16:16:20 +0100
committerLeon Klingele <git@leonklingele.de>2018-02-01 00:48:45 +0100
commit399921347fd5b4ceaecd52484fb8f470cdb9ef03 (patch)
tree914359b62d315dd0028d2fbae18fcd5d0b09098f /src/cryptonote_core
parentMerge pull request #3198 (diff)
downloadmonero-399921347fd5b4ceaecd52484fb8f470cdb9ef03.tar.xz
txpool: Properly bail out when outputs_amount == inputs_amount
Previously, when outputs_amount == inputs_amount, the "m_overspend" property was set, whereas "m_fee_too_low" would have been the correct property to set. This is unlikely to ever occur and just something I've noticed while reading through the code.
Diffstat (limited to 'src/cryptonote_core')
-rw-r--r--src/cryptonote_core/tx_pool.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp
index e75584bce..f6c054c0a 100644
--- a/src/cryptonote_core/tx_pool.cpp
+++ b/src/cryptonote_core/tx_pool.cpp
@@ -151,13 +151,20 @@ namespace cryptonote
}
uint64_t outputs_amount = get_outs_money_amount(tx);
- if(outputs_amount >= inputs_amount)
+ if(outputs_amount > inputs_amount)
{
LOG_PRINT_L1("transaction use more money then it has: use " << print_money(outputs_amount) << ", have " << print_money(inputs_amount));
tvc.m_verifivation_failed = true;
tvc.m_overspend = true;
return false;
}
+ else if(outputs_amount == inputs_amount)
+ {
+ LOG_PRINT_L1("transaction fee is zero: outputs_amount == inputs_amount, rejecting.");
+ tvc.m_verifivation_failed = true;
+ tvc.m_fee_too_low = true;
+ return false;
+ }
fee = inputs_amount - outputs_amount;
}