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