gnucash maint: Bug 798015 - cash flow numerical-overflow
Christopher Lam
clam at code.gnucash.org
Sun Nov 22 10:36:04 EST 2020
Updated via https://github.com/Gnucash/gnucash/commit/d11bdb3e (commit)
from https://github.com/Gnucash/gnucash/commit/72982de5 (commit)
commit d11bdb3e3af518de86ef52a58c609b1e879929cc
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Sun Nov 22 22:36:51 2020 +0800
Bug 798015 - cash flow numerical-overflow
error is caused by pricedb containing an invalid gnc_numeric
price. multiplication of (invalid) price with amount causes a report
crash.
Fix: if invalid price, return zero for amount converted to report
currency.
diff --git a/libgnucash/engine/gnc-pricedb.c b/libgnucash/engine/gnc-pricedb.c
index 481df22ad..654c88fc5 100644
--- a/libgnucash/engine/gnc-pricedb.c
+++ b/libgnucash/engine/gnc-pricedb.c
@@ -2616,6 +2616,10 @@ static gnc_numeric convert_amount_at_date (GNCPriceDB *pdb,
price = gnc_pricedb_get_nearest_price (pdb, orig_currency, new_currency, t);
+ /* the price retrieved may be invalid. return zero. see 798015 */
+ if (gnc_numeric_check (price))
+ return gnc_numeric_zero ();
+
return gnc_numeric_mul
(amount, price, gnc_commodity_get_fraction (new_currency),
GNC_HOW_DENOM_EXACT | GNC_HOW_RND_ROUND);
Summary of changes:
libgnucash/engine/gnc-pricedb.c | 4 ++++
1 file changed, 4 insertions(+)
More information about the gnucash-changes
mailing list