diff --git a/common/math/exp.go b/common/math/exp.go index 5a1bbbf26a..cc69cc9896 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 8162b19854..1689b65864 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 } diff --git a/swarm/api/http/server_test.go b/swarm/api/http/server_test.go index b99b570a65..5ab1e2aaff 100644 --- a/swarm/api/http/server_test.go +++ b/swarm/api/http/server_test.go @@ -113,6 +113,9 @@ func TestBzzrGetPath(t *testing.T) { url += common.ToHex(key[0])[2:] + "/" + k[1:] + "?content_type=text/plain" } resp, err = http.Get(url) + if err != nil { + t.Fatalf("Request failed: %v", err) + } defer resp.Body.Close() respbody, err = ioutil.ReadAll(resp.Body)