From f0d64c1185b8a69298cd5e65b8d4e04ebacc8361 Mon Sep 17 00:00:00 2001 From: Chris Shoemaker Date: Sat, 15 Jul 2006 19:47:02 +0000 Subject: [PATCH] Avoid SIGFPE due to modulo-by-zero is the requested number of significant figures is greater than log10(2^63). BP git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14512 57a11ea4-9604-0410-9ed3-97b8803252fd --- lib/libqof/qof/gnc-numeric.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/libqof/qof/gnc-numeric.c b/lib/libqof/qof/gnc-numeric.c index a7ad9ae1b4..235848b1de 100644 --- a/lib/libqof/qof/gnc-numeric.c +++ b/lib/libqof/qof/gnc-numeric.c @@ -785,6 +785,9 @@ gnc_numeric_convert(gnc_numeric in, gint64 denom, gint how) } sigfigs = GNC_HOW_GET_SIGFIGS(how); + if (fabs(sigfigs - logratio) > 18) + return gnc_numeric_error(GNC_ERROR_OVERFLOW); + if(sigfigs-logratio >= 0) { denom = (gint64)(pow(10, sigfigs-logratio)); }