[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-exchange] branch master updated: fix #6148
From: |
gnunet |
Subject: |
[taler-exchange] branch master updated: fix #6148 |
Date: |
Thu, 02 Apr 2020 14:01:43 +0200 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository exchange.
The following commit(s) were added to refs/heads/master by this push:
new e9de3374 fix #6148
e9de3374 is described below
commit e9de3374a974df5e7eeaff0c3241dd98724c642e
Author: Christian Grothoff <address@hidden>
AuthorDate: Thu Apr 2 14:01:41 2020 +0200
fix #6148
---
src/util/amount.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/src/util/amount.c b/src/util/amount.c
index 2fc78654..454f3080 100644
--- a/src/util/amount.c
+++ b/src/util/amount.c
@@ -529,26 +529,23 @@ TALER_amount_add (struct TALER_Amount *sum,
int
TALER_amount_normalize (struct TALER_Amount *amount)
{
- int ret;
+ uint32_t overflow;
if (GNUNET_YES != TALER_amount_is_valid (amount))
return GNUNET_SYSERR;
- ret = GNUNET_NO;
- while ( (amount->value != UINT64_MAX) &&
- (amount->fraction >= TALER_AMOUNT_FRAC_BASE) )
- {
- amount->fraction -= TALER_AMOUNT_FRAC_BASE;
- amount->value++;
- ret = GNUNET_OK;
- }
- if (amount->fraction >= TALER_AMOUNT_FRAC_BASE)
+ if (amount->fraction < TALER_AMOUNT_FRAC_BASE)
+ return GNUNET_NO;
+ overflow = amount->fraction / TALER_AMOUT_FRAC_BASE;
+ amount->fraction %= TALER_AMOUNT_FRAC_BASE;
+ amount->value += overflow;
+ ret = GNUNET_OK;
+ if ( (amount->value < overflow) ||
+ (amount->value > MAX_AMOUNT_VALUE) )
{
- /* failed to normalize, adding up fractions caused
- main value to overflow! */
invalidate (amount);
return GNUNET_SYSERR;
}
- return ret;
+ return GNUNET_OK;
}
--
To stop receiving notification emails like this one, please contact
address@hidden.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-exchange] branch master updated: fix #6148,
gnunet <=