gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]