Detect non-valid strings for blockheight

pull/626/head
Taylor Gerring 10 years ago
parent 3908590578
commit aa71e27a3b
  1. 5
      common/bytes.go
  2. 6
      rpc/args.go

@ -127,6 +127,11 @@ func CopyBytes(b []byte) (copiedBytes []byte) {
return return
} }
func HasHexPrefix(str string) bool {
l := len(str)
return l >= 2 && str[0:2] == "0x"
}
func IsHex(str string) bool { func IsHex(str string) bool {
l := len(str) l := len(str)
return l >= 4 && l%2 == 0 && str[0:2] == "0x" return l >= 4 && l%2 == 0 && str[0:2] == "0x"

@ -41,7 +41,11 @@ func blockHeight(raw interface{}, number *int64) error {
case "pending": case "pending":
*number = -2 *number = -2
default: default:
*number = common.String2Big(str).Int64() if common.HasHexPrefix(str) {
*number = common.String2Big(str).Int64()
} else {
return NewInvalidTypeError("blockNumber", "is not a valid string")
}
} }
return nil return nil

Loading…
Cancel
Save