aboutsummaryrefslogtreecommitdiffstats
path: root/common/math
diff options
context:
space:
mode:
Diffstat (limited to 'common/math')
-rw-r--r--common/math/exp.go3
-rw-r--r--common/math/integer.go4
2 files changed, 5 insertions, 2 deletions
diff --git a/common/math/exp.go b/common/math/exp.go
index 6f6c040e0..113b76b39 100644
--- a/common/math/exp.go
+++ b/common/math/exp.go
@@ -27,6 +27,9 @@ const wordSize = 32 << (uint64(^big.Word(0)) >> 63)
// Exp implement exponentiation by squaring algorithm.
//
+// Exp return a new variable; base and exponent must
+// not be changed under any circumstance.
+//
// Courtesy @karalabe and @chfast
func Exp(base, exponent *big.Int) *big.Int {
result := big.NewInt(1)
diff --git a/common/math/integer.go b/common/math/integer.go
index 8162b1985..1689b6586 100644
--- a/common/math/integer.go
+++ b/common/math/integer.go
@@ -18,8 +18,8 @@ func SafeAdd(x, y uint64) (uint64, bool) {
// SafeMul returns multiplication result and whether overflow occurred.
func SafeMul(x, y uint64) (uint64, bool) {
- if x == 0 {
+ if x == 0 || y == 0 {
return 0, false
}
- return x * y, x != 0 && y != 0 && y > gmath.MaxUint64/x
+ return x * y, y > gmath.MaxUint64/x
}