From d51b4d7f0882c43345c5ce28fed0bfa9eb3a4848 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sat, 28 Dec 2019 13:36:11 -0800 Subject: [PATCH] Bug 797532 - Crash/Coredump Lots Replace the asserts in cap-gains.c with g_return_val_if_fail. There's nothing about cap-gains.c that justifies crashing the program. --- libgnucash/engine/cap-gains.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libgnucash/engine/cap-gains.c b/libgnucash/engine/cap-gains.c index 9c73786656..fa9af436a3 100644 --- a/libgnucash/engine/cap-gains.c +++ b/libgnucash/engine/cap-gains.c @@ -336,7 +336,7 @@ xaccSplitAssignToLot (Split *split, GNCLot *lot) amt_tot = split->amount; amt_a = gnc_numeric_neg (baln); amt_b = gnc_numeric_sub_fixed (amt_tot, amt_a); - g_assert (gnc_numeric_check(amt_b) == GNC_ERROR_OK); + g_return_val_if_fail(gnc_numeric_check(amt_b) == GNC_ERROR_OK, NULL); PINFO ("++++++++++++++ splitting split=%p into amt = %s + %s", split, @@ -366,7 +366,7 @@ xaccSplitAssignToLot (Split *split, GNCLot *lot) gnc_num_dbg_to_string(amt_tot)); } - if (gnc_numeric_zero_p(val_a) || gnc_numeric_zero_p(val_b)) + if (gnc_numeric_zero_p(amt_a) || gnc_numeric_zero_p(amt_b)) { PERR ("Failed to split into two!"); } @@ -376,8 +376,8 @@ xaccSplitAssignToLot (Split *split, GNCLot *lot) gnc_num_dbg_to_string(val_a), gnc_num_dbg_to_string(val_b) ); - g_assert (!gnc_numeric_zero_p (amt_a)); - g_assert (!gnc_numeric_zero_p (val_a)); + g_return_val_if_fail (!gnc_numeric_zero_p (amt_a), NULL); + g_return_val_if_fail (!gnc_numeric_check (val_a), NULL); xaccSplitSetAmount (split, amt_a); xaccSplitSetValue (split, val_a); @@ -438,8 +438,8 @@ xaccSplitAssign (Split *split) * have lots, we are done. */ if (split->lot) return FALSE; - g_assert (split->gains == GAINS_STATUS_UNKNOWN || - (split->gains & GAINS_STATUS_GAINS) == FALSE); + g_return_val_if_fail (split->gains == GAINS_STATUS_UNKNOWN || + (split->gains & GAINS_STATUS_GAINS) == FALSE, FALSE); acc = split->acc; if (!xaccAccountHasTrades (acc)) return FALSE;