Skip to content

Commit a3abeec

Browse files
committed
policy/fees: remove a floating-point division by zero
Reported-by: practicalswift <[email protected]> Signed-off-by: Antoine Poinsot <[email protected]>
1 parent c36869b commit a3abeec

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/policy/fees.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,13 +325,22 @@ double TxConfirmStats::EstimateMedianVal(int confTarget, double sufficientTxVal,
325325
failBucket.leftMempool = failNum;
326326
}
327327

328+
float passed_within_target_perc = 0.0;
329+
float failed_within_target_perc = 0.0;
330+
if ((passBucket.totalConfirmed + passBucket.inMempool + passBucket.leftMempool)) {
331+
passed_within_target_perc = 100 * passBucket.withinTarget / (passBucket.totalConfirmed + passBucket.inMempool + passBucket.leftMempool);
332+
}
333+
if ((failBucket.totalConfirmed + failBucket.inMempool + failBucket.leftMempool)) {
334+
failed_within_target_perc = 100 * failBucket.withinTarget / (failBucket.totalConfirmed + failBucket.inMempool + failBucket.leftMempool);
335+
}
336+
328337
LogPrint(BCLog::ESTIMATEFEE, "FeeEst: %d > %.0f%% decay %.5f: feerate: %g from (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out) Fail: (%g - %g) %.2f%% %.1f/(%.1f %d mem %.1f out)\n",
329338
confTarget, 100.0 * successBreakPoint, decay,
330339
median, passBucket.start, passBucket.end,
331-
100 * passBucket.withinTarget / (passBucket.totalConfirmed + passBucket.inMempool + passBucket.leftMempool),
340+
passed_within_target_perc,
332341
passBucket.withinTarget, passBucket.totalConfirmed, passBucket.inMempool, passBucket.leftMempool,
333342
failBucket.start, failBucket.end,
334-
100 * failBucket.withinTarget / (failBucket.totalConfirmed + failBucket.inMempool + failBucket.leftMempool),
343+
failed_within_target_perc,
335344
failBucket.withinTarget, failBucket.totalConfirmed, failBucket.inMempool, failBucket.leftMempool);
336345

337346

test/sanitizer_suppressions/ubsan

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# -fsanitize=undefined suppressions
22
# =================================
3-
float-divide-by-zero:policy/fees.cpp
43
float-divide-by-zero:validation.cpp
54
float-divide-by-zero:wallet/wallet.cpp
65

0 commit comments

Comments
 (0)