Merge pull request #24 from pelletier/pelletier/integer_overflow
Int overflow in queryparser
This commit is contained in:
+3
-4
@@ -2,7 +2,6 @@ package toml
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@@ -110,7 +109,7 @@ func TestPathSliceStart(t *testing.T) {
|
||||
assertPath(t,
|
||||
"$[123:]",
|
||||
buildPath(
|
||||
newMatchSliceFn(123, math.MaxInt64, 1),
|
||||
newMatchSliceFn(123, MaxInt, 1),
|
||||
))
|
||||
}
|
||||
|
||||
@@ -134,7 +133,7 @@ func TestPathSliceStartStep(t *testing.T) {
|
||||
assertPath(t,
|
||||
"$[123::7]",
|
||||
buildPath(
|
||||
newMatchSliceFn(123, math.MaxInt64, 7),
|
||||
newMatchSliceFn(123, MaxInt, 7),
|
||||
))
|
||||
}
|
||||
|
||||
@@ -150,7 +149,7 @@ func TestPathSliceStep(t *testing.T) {
|
||||
assertPath(t,
|
||||
"$[::7]",
|
||||
buildPath(
|
||||
newMatchSliceFn(0, math.MaxInt64, 7),
|
||||
newMatchSliceFn(0, MaxInt, 7),
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -9,9 +9,10 @@ package toml
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
)
|
||||
|
||||
const MaxInt = int(^uint(0) >> 1)
|
||||
|
||||
type queryParser struct {
|
||||
flow chan token
|
||||
tokensBuffer []token
|
||||
@@ -203,7 +204,7 @@ loop: // labeled loop for easy breaking
|
||||
|
||||
func (p *queryParser) parseSliceExpr() queryParserStateFn {
|
||||
// init slice to grab all elements
|
||||
start, end, step := 0, math.MaxInt64, 1
|
||||
start, end, step := 0, MaxInt, 1
|
||||
|
||||
// parse optional start
|
||||
tok := p.getToken()
|
||||
|
||||
Reference in New Issue
Block a user