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.
This commit is contained in:
Christopher Lam 2020-11-22 22:36:51 +08:00
parent 72982de588
commit d11bdb3e3a

View File

@ -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);