From a809dc7adb8065368c73900a8256048c55cde79b Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 12 Feb 2015 15:09:56 -0800 Subject: math/big: don't scan past a binary exponent if not accepted syntactically TBR adonovan Change-Id: I842cbc855dbd560f65e76c9a557dff1a22c5d610 Reviewed-on: https://go-review.googlesource.com/4882 Reviewed-by: Robert Griesemer --- src/math/big/floatconv.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/math/big/floatconv.go') diff --git a/src/math/big/floatconv.go b/src/math/big/floatconv.go index 04f9a4e1b4..a857fa6513 100644 --- a/src/math/big/floatconv.go +++ b/src/math/big/floatconv.go @@ -46,11 +46,12 @@ func (z *Float) SetString(s string) (*Float, bool) { // digits = digit { digit } . // digit = "0" ... "9" | "a" ... "z" | "A" ... "Z" . // -// The base argument must be 0 or a value between 2 through MaxBase. +// The base argument must be 0, 2, 10, or 16. Providing an invalid base +// argument will lead to a run-time panic. // // For base 0, the number prefix determines the actual base: A prefix of // ``0x'' or ``0X'' selects base 16, and a ``0b'' or ``0B'' prefix selects -// base 2; otherwise, the actual base is 10 and no prefix is permitted. +// base 2; otherwise, the actual base is 10 and no prefix is accepted. // The octal prefix ``0'' is not supported. // // A "p" exponent indicates power of 2 for the exponent; for instance "1.2p3" @@ -75,7 +76,7 @@ func (z *Float) Scan(r io.ByteScanner, base int) (f *Float, b int, err error) { // exponent var exp int64 var ebase int - exp, ebase, err = scanExponent(r) + exp, ebase, err = scanExponent(r, true) if err != nil { return } -- cgit v1.3